我有以下文本文件:
$ cat file.txt
# file;GYPA;Boston
Josh 81-62 20
Mike 72-27 1;42;53
Allie 71-27 24;12
我想通过以下方式将 GYPA 添加到第三列的每个元素:
GYPA:20
GYPA:1;GYPA:42;GYPA:53
GYPA:24;GYPA:12
到目前为止,我有
猫组合.awk
NR==1 {
FS=";"; Add=$2
}
{
FS="\t"; split($3,a,";");
for (i in a) {
print Add":"a[i]
}
}
阵列部分不起作用。
最佳答案
假设您要添加的前缀字符串中没有反向引用(例如 &
)或转义字符:
$ awk -F';' 'NR==1{add=$2":"; FS=" "; next} {gsub(/(^|;)/,"&"add,$3); print $3}' file
GYPA:20
GYPA:1;GYPA:42;GYPA:53
GYPA:24;GYPA:12
关于bash - 使用 awk 或 bash 将字符串附加到列中单元格的所有元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60011272/