我想只替换LC-COUNT = 1的前四次出现。我可以这样做吗。
sed -i "s/LC-COUNT=1/LC-COUNT=$LC_COUNT/1,4" file.txt
答案 0 :(得分:4)
试试这个 -
sed -e '0,/LC-COUNT=1/s//LC-COUNT=\$LC_COUNT/' file.txt > output.txt
仅运行一次会将LC-COUNT=1
的第一次出现替换为LC-COUNT=$LC_COUNT
,并将输出output.txt文件。注意:您必须先转义 $ char。
您必须运行四次。但是下次将output.txt视为原始文件,我的意思是在output.txt中进行替换。
我认为使用sed
无法找到并替换第一个 N 出现次数。
在vim你做类似的事情 -
:%s/LC-COUNT=1/LC-COUNT=\$LC_COUNT/gc
有gc
选项会要求您确认每个查找替换。你可以
答案 1 :(得分:0)
这更适合awk。
考虑这个awk命令:
awk -F= '$1=="LC-COUNT" && c<=4 {$2="=$LC_COUNT";c++}1' OFS= file