sed +仅在与第

问题描述:

相匹配时才替换。以下sed命令用NEW字符串替换OLD字符串。 我的目标是仅在COMMAND单词作为该行中的第一个单词出现时将OLD替换为NEW。 如何修复我的sed语法,以便用NEW替换OLD只有COMMAND是第一个字符串? (注:COMMAND字位置可以从线路的一些空间开始后)。sed +仅在与第

利迪娅

sed "/^ *#/b; /COMMAND/ s/OLD/NEW/g" file 

    COMMAND OLD 
    OLD COMMAND 

SED exe文件后:

COMMAND NEW 
    NEW COMMAND 

"/^[ \t]*COMMAND/ s/OLD/NEW/g" 

试试这个:'s/^(\s*COMMAND) OLD(.*)$/\1 NEW\2/'

awk解决方案

awk '{if($1=="COMMAND") $2="NEW";print}' temp.txt