Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.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
LinuxBash:如何从bash命令行替换文件中的2个单词_Linux_Bash_Awk_Sed - Fatal编程技术网

LinuxBash:如何从bash命令行替换文件中的2个单词

LinuxBash:如何从bash命令行替换文件中的2个单词,linux,bash,awk,sed,Linux,Bash,Awk,Sed,我需要从Bash命令行替换文件中的2个单词,例如: fileA.txt xxxx AA BB xxx 我需要将Bash命令行中的“AA BB”替换为“CC DD”,因此该文件将变成: xxxx CC DD xxx 谢谢你的帮助 您可以尝试下面的sed命令 sed -i 's/AA BB/CC DD/g' file 例如: $ echo 'xxxx AA BB xxx' | sed 's/AA BB/CC DD/g' xxxx CC DD xxx $ echo 'xxxx AA BB x

我需要从Bash命令行替换文件中的2个单词,例如: fileA.txt

xxxx AA BB xxx 
我需要将Bash命令行中的“AA BB”替换为“CC DD”,因此该文件将变成:

xxxx CC DD xxx

谢谢你的帮助

您可以尝试下面的
sed
命令

sed -i 's/AA BB/CC DD/g' file
例如:

$ echo 'xxxx AA BB xxx' | sed 's/AA BB/CC DD/g'
xxxx CC DD xxx
$ echo 'xxxx AA BB xxx' | awk '{sub(/AA BB/,"CC DD")}1'
xxxx CC DD xxx
通过awk

awk '{sub(/AA BB/,"CC DD")}1' infile > outfile
例如:

$ echo 'xxxx AA BB xxx' | sed 's/AA BB/CC DD/g'
xxxx CC DD xxx
$ echo 'xxxx AA BB xxx' | awk '{sub(/AA BB/,"CC DD")}1'
xxxx CC DD xxx
该命令的作用是

sed-e's/TEXT_TO_REPLACE/NEW_TEXT/g'filename.txt>output.txt

什么是“单词”?您接受的解决方案仅适用于术语的某些定义,但通常不适用于空格分隔或标点分隔的字符串。