最初のイベント以外のすべてのイベントをコメントアウトしてみました。
オリジナルサンプル.txt
一つ 二つ サム 二つ 二つ #二人
サンプル.txt
一つ 二つ サム #二人 ##両方 #二人
私は何が起こるのかについてのみ説明できます。使用:
sed -i /two/s/^/#/
ただし、これはすでにコメントアウトされているイベントもコメントアウトします。また、イベントが見つかった行をコメントとして扱います。この問題をどのように解決できますか? Ubuntuの基本イメージでこれをテストしているので、特に何もインストールできません。
ベストアンサー1
少なくともGNU sed(Ubuntuにはデフォルトである必要があります)を使用すると、0,/pattern/
次のことができます。
$ sed '0,/^two/!s//#&/' original.txt
one
two
three
#two
#two
#two
これは、「0行と最初の一致の間の0行を除くすべての行に対してに置き換え、ちょうど一致した/^two/
内容に従います。置換の空のパターンは、以前の正規表現と一致し、一致したものを置き換えます。非/^two/
ゴルフバージョン〜する#
//
&
sed '0,/^two/!s/^two/#two/' original.txt
^two
行の先頭に固定されているため、注釈付きイベントと一致しません。いいえ何が欲しいですか?削除してください^
。