awk '{_l=split($7,a,"|");for(i=1;i<=_l;i++)print $1,gensub(";"," ","g",a[i])}' filetest25.txt
时间: 2024-04-24 16:25:20 浏览: 103
AWK单行脚本快速参考.pdf
你的命令几乎正确,只是在 `gensub` 函数中,将分号(`;`)替换为空格(`" "`)时,用到了正则表达式模式,但没有使用正则表达式修饰符。
以下是修改后的命令:
```shell
awk '{_l=split($7,a,"|"); for(i=1; i<=_l; i++) print $1, gensub(";", " ", "g", a[i])}' filetest25.txt
```
在这个awk命令中,我们使用split函数将第7列以竖线(`|`)作为分隔符进行拆分,并将结果存储在数组 `a` 中。然后,使用for循环遍历数组 `a`,并使用gensub函数将每个数组元素中的分号(`;`)替换为空格(`" "`)。最后,使用print语句输出结果,包括第1列和处理后的数组元素。
请注意,在gensub函数中,第3个参数是正则表达式修饰符,我们使用 `"g"` 表示全局替换模式。
阅读全文