小编Rus*_*sso的帖子

使用awk只替换$ 4和$ 5之间的分隔符

我是awk语言的新手,我对它拥有的所有力量感到惊讶.(我今天发现了这个),因为我有这种格式的文件:

test1;test2;test3;test4;test5;test6;test7
Run Code Online (Sandbox Code Playgroud)

我需要在一个新文件中输出它并得到结果:

test1;test2;test3;test4 test5;test6;test7
Run Code Online (Sandbox Code Playgroud)

基本上加''在4美元到5美元之间.我知道有很多问题,但我无法做我想做的事.

我正在测试我在这里找到的代码:

   for (i=1;i<=3;i++)
      printf "%s;", $i

   n = split($0,tmp,/  +/)

   for (i=6;i>=8;i++)
      printf ";%s", tmp[n-i]

   print ""
}
Run Code Online (Sandbox Code Playgroud)

但我得到的输出如下:

test1;test2;test3;test4;test5;test6;;;
Run Code Online (Sandbox Code Playgroud)

你能告诉我我做错了什么吗?还有另外一种简单的方法,比如awk中的单行代码来做这个吗?先感谢您

awk replace sed

2
推荐指数
1
解决办法
865
查看次数

标签 统计

awk ×1

replace ×1

sed ×1