将冒号分隔的值列表转换为键=值对

将冒号分隔的值列表转换为键=值对

我需要一个 bash 或 python 脚本来从文本中读取以下示例行:

1:2:3:4
4:3:2:1

并将它们写入新的文本文件,输出如下:

A=1
B=2
C=3
D=4

A=4
B=3
C=2
D=1

答案1

Awk解决方案:

awk 'BEGIN{
         abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
         split(abc, letters, "")
     }
     {
         for (i = 1; i <= NF; i++) print letters[i] "=" $i;
         print "" 
     }' FS=':' input.txt > newfile

newfile内容:

A=1
B=2
C=3
D=4

A=4
B=3
C=2
D=1

答案2

awk -F: '{ print "A=" $1 "\nB=" $2 "\nC=" $3 "\nD=" $4 "\n"; }' inputfile

或者在bash中

while IFS=: read -r a b c d rest; do
    printf 'A=%d\nB=%d\nC=%d\nD=%d\n\n' $a $b $c $d
done <inputfile

相关内容