在文件中查找X出现的字符串并替换为静态字符串

时间:2016-07-11 10:44:16

标签: linux bash shell unix sed

我需要你再帮忙。我需要找到3和4次出现的逗号(在整行中)并用特定的字符串替换,让我们假设:

"Text","Text2","Text3","Text4","Text5"
"Text6","Text7","Text8","Text9","Text10"

现在,我想将Text4,Text9,Text5,Text10替换为eg。 “静态”

 "Text","Text2","Text3","Static","Static"
 "Text6","Text7","Text8","Static","Static"

我应该使用哪种功能?知道可能'sed'是适当的,但如何计算逗号?

编辑:(简单版本只有3个逗号)

我需要找到只有3次出现的逗号(在整行中)并用特定字符串替换,我们假设:

"Text","Text2","Text3","Text4","Text5"
"Text6","Text7","Text8","Text9","Text10"

现在,我想将Text4,Text9替换为eg。 “静态”

 "Text","Text2","Text3","Static","Text5"
 "Text6","Text7","Text8","Static","Text5"

1 个答案:

答案 0 :(得分:1)

这个awk单行程适用于给定的示例。它会更改第4和第5列/字段中的文本:

awk -F, -v OFS="," '{i=4;while(i<6)gsub(/\w+/,"Static",$(i++))}7' file