使用 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,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

path仅在test-path第 6 场替换

答案2

尝试使用以下命令

$ sed "s/\/path/\/test-path/" filename
path,foo,12344,bar,foo,example4/test-path/1,test2
path,bar,12345,bar,bar,example2/test-path/4,test

相关内容