BSD sed(no GNU extension)を使用して、以下に示す例と同様の操作を実行するにはどうすればよいですか?ただし、行番号の代わりに、パターンが発生します(実際の数を指定する必要はありません)?
行番号に制限する
最も単純な制限は行番号です。
3行目の最初の番号を削除する場合は、コマンドの前に「3」を追加するだけです。
sed '3 s/[0-9][0-9]*//' <filename >newfilename
これは完全に機能します:
sed '1、/ abc/s/abc/xyz /'file.txt
省略可能:
sed '1、/ abc/s // xyz /'file.txt
GNU&BSD:
sed '1、/ [0-9] [0-9] */s ///' <ファイル名> newfilename
{ sed -Ee'/[0-9]+/{s///;q;}'; cat; } <in >out
^ BSD sed
で動作するはずです。しかし、どうやらそうではありません。
など:
sed -e'/[0-9][0-9]*/{s///;:b' -e'n;bb' -e\} <in >out
...それらのいずれかで動作するはずです。