首页 > 解决方案 > 需要在列前添加一个字符串并用它添加另一列

问题描述

我有一个有 2 行的文件

123|456|789
abc|123|891

我需要一个输出如下。基本上,我想将字符串“xyz”添加到 col 1 并将“xyz”添加为新的 col 2

xyz-123|xyz|456|789
xyz-abc|xyz|123|891

这是我用的

awk 'BEGIN{FS=OFS="fs-"$1}{print value OFS $0}' /tmp/b.log

我明白了

xyz-123|456|789
xyz-abc|123|891

我试过了

awk 'BEGIN{FS=OFS="fs-"$1}{print value OFS $0}' /tmp/b.log|awk -F" " '{$2="fs" $0;}1' OFS=" "

标签: bashawksed

解决方案


除了 awk 的更新字段 ($1, $2...) 方法之外,我们还可以使用替换来完成这项工作:

 sed 's/^[^|]*/xyz-&|xyz/' file

如果 awk 是必须的:

awk '1+sub(/^[^|]*/, "xyz-&|xyz")' file

两个单线都给出了预期的输出。


推荐阅读