Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Shell编程。实现搜索、查找和替换技术_Linux_Shell_Unix_Replace_Find - Fatal编程技术网

Linux Shell编程。实现搜索、查找和替换技术

Linux Shell编程。实现搜索、查找和替换技术,linux,shell,unix,replace,find,Linux,Shell,Unix,Replace,Find,我必须在shell编程(Unix/Linux)中实现一个应用程序 我必须从文本文件中搜索一个单词,并用我给定的单词替换该单词。我对壳牌有一定的了解,并且还在学习 我不期待源代码。有谁能帮我或给我建议或给我一些类似的解决方案吗 cat abc.txt | grep "pattern" | sed 's/"pattern"/"new pattern"/g' 上面的命令应该可以工作 谢谢 问候, Dheeraj Rampally说您正在一个文件(input.txt)中查找模式,并想在另一个文件(o

我必须在shell编程(Unix/Linux)中实现一个应用程序

我必须从文本文件中搜索一个单词,并用我给定的单词替换该单词。我对壳牌有一定的了解,并且还在学习

我不期待源代码。有谁能帮我或给我建议或给我一些类似的解决方案吗

cat abc.txt | grep "pattern" | sed 's/"pattern"/"new pattern"/g' 
上面的命令应该可以工作

谢谢

问候,


Dheeraj Rampally

说您正在一个文件(
input.txt
)中查找
模式,并想在另一个文件(
output.txt
)中将其替换为
“新模式”

以下是在没有UUOC的情况下的主要思想:

<input.txt sed 's/"pattern"/"new pattern"/g' >output.txt
。。。但是
echo
命令删除换行符。。。还在看


编辑2 从一开始,它看起来就像是一次写入同一个文件,一点也不容易。但是,我可以使用
sed-I
做我想做的事情,只需:

从中,似乎没有其他选择,您必须使用临时文件:

sed 's/pattern/"new pattern"/g' input.txt > input.tmp && mv input.tmp input.txt

例如,您可以使用
grep
查找文件中的文本,
find
查找文件,
sed
进行替换。检查每个问题的手册页(
mangrep
mansed
embedded linux
对于这个问题似乎是一个奇怪的标签,就像
linux内核
你想看看sed,尤其是它的s命令一样。我闻到了一个“无用的使用cat”奖…;-)
echo $(<input.txt sed 's/pattern/"new pattern"/g')>input.txt
sed -i 's/pattern/"new pattern"/g' input.txt
sed 's/pattern/"new pattern"/g' input.txt > input.tmp && mv input.tmp input.txt