我有以下文本文件:

$ 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/

10-12 05:44