awkを使用してテキストの一部のみを検索して置換する

awkを使用してテキストの一部のみを検索して置換する

私のファイルには次の内容があります。

$ cat file.txt
path,foo,12344,bar,foo,example4/path/1,test2
path,bar,12345,bar,bar,example2/path/4,test5

6番目のフィールド「Path」を「Test Path」に変更したいと思います。

path,foo,12344,bar,foo,example4/test-path/1,test2
path,bar,12345,bar,bar,example2/test-path/4,test5

私は成功せずに次のことを試しました。

$ awk -F, -v needle='path' -v replacement='test-path' 'BEGIN{ OFS = FS; } (NR > 1 && $6 == needle) { $6 = replacement; } 1' file.txt

ベストアンサー1

この試み、

awk -F ',' -v OFS=',' '{gsub("path","test-path",$6)}1' file.txt

path,foo,12344,bar,foo,example4/test-path/1,test2
path,bar,12345,bar,bar,example2/test-path/4,test5

pathtest-pathゲーム6でのみ交換

おすすめ記事