ファイル名と行番号のリストがあります。この行をどのように修正できますか?

ファイル名と行番号のリストがあります。この行をどのように修正できますか?

次の形式のファイル名と行番号のリストがあります。

./foo.txt:1:(more characters)
./foo.txt:3:(more characters)
./bar.txt:10:(more characters)

リストはファイルからインポートすることも、プロセス(たとえばgrep -n)によって出力することもできます。

引用した各行に固定テキストを追加し、その場所でファイルを変更したいと思います。

たとえば、foo.txtファイルに次のテキストが含まれているとします。

One
Two
Three
Four

以下を含めるように変更したいと思います。

One TODO
Two
Three TODO
Four

同様に、bar.txtの10行目に「TODO」を追加する必要があります。

どうすればいいですか?

ベストアンサー1

1つのオプション:edを使用してください!

while IFS=: read -r filename linenumber junk
do
  ed -s "$filename" <<< "$linenumber"$'s/$/ TODO/\nw\nq'
done < input

おすすめ記事