Sed

使用 sed 從文件開頭註釋到模式匹配行

  • May 17, 2019

我搜尋一個模式,比如“START OF ARAMBOL”,它在文件中匹配。現在我想評論從第 1 行到目前匹配模式行號的每一行。我必須為 200 多個文件執行此操作。

我也可以使用 perl 來做到這一點,但是有什麼好的 sed 方法可以做到這一點。

謝謝

作為一個單行來展示這個概念:

echo -e 'a\nb\nc\nPATTERN\nd\ne\nf' | sed '0,/PATTERN/ s/^/#/'

你只需要適應你的環境:

  • 至於“模式”
  • 我假設 ‘#’ 作為評論字元
  • 以及如何將其應用於所有文件。如果它們都是’fileXXX.txt’,你可以執行:sed -i '0,/PATTERN/ s/^/#/' file*txt

您的問題詢問sed但包含gvim標籤,所以這裡是ed/ex答案:

ed file <<EOF
0,/"$pattern"/s/^/"$comment_char"/
wq
EOF

它看起來非常像sed答案是因為sedex下降ed

引用自:https://unix.stackexchange.com/questions/519465