このようなファイルがあるとしましょう。
Keyword "name"
aaa bbb
ccc ddd
Keyword "another name"
eee fff
ggg
hhh iii
など。
カウンタが与えられた数字から始まるように、ファイルのキーワード行を変更したいと思います。たとえば、5 から始まるキーワード行の番号を指定する場合、キーワード行は次のようになります。
Keyword "5 - name"
Keyword "6 - another name"
など。ファイルの他のすべての行は変更されません。
これを行う方法はありますか?ありがとうございます。
ベストアンサー1
GNU sedがある場合は、標準以外のR
コマンドを使用して事前に生成されたシーケンスからインデックスを読み取り、挿入し、sedを再度呼び出すことで結果を並べ替えることができます。
printf '%d\n' {5..100} | sed '/^Keyword/R /dev/stdin' file |
sed '/^Keyword/{N; s/Keyword "\([^"]*\)"\n\(.*\)/Keyword "\2 - \1"/}'
ただし、これには代わりにperl
orを使用することをお勧めします。awk
awk -v k=5 '/^Keyword/ {sub(/^Keyword \"/, sprintf("Keyword \"%d - ", k++))} 1' file