我有这种格式的记录。
^@343453^@145562998^@1001^@1KDI03K^@1802282^@10^@118543r221^@10^@1k2FOOD^@1NB^@1^@4554545^@3444545^@1STD^@45454554^@1NORMAL^@1^@1^@1^@1CDIH^@1^@12PY567
这里的字段分隔符是^@,文件一共有73个字段
我试过了
awk -F "^@" ' { print $1} ' file.txt;
awk -F "\^\@" ' { print $1} ' file.txt;
但我无法将我的字段分开,我将整个记录作为输出。
正确的做法是什么?
最佳答案
您需要在字段分隔符中对 ^
进行两次转义。为什么需要转义它,因为它具有特殊含义,因此要将其视为文字字符,请使用此字符。
awk -F'\\^@' '{print $2}' Input_file
您的第一个字段是空的,因此无法打印,因此要通过显示的示例了解您的字段编号及其值,您可以尝试执行以下命令以更好地理解它们。
awk -F'\\^@' '{for(i=1;i<=NF;i++){print "field Number:"i " field value is:" $i}}' Input_file
您的示例的几行将是:
field Number:1 field value is:
field Number:2 field value is:343453
field Number:3 field value is:145562998
field Number:4 field value is:1001
field Number:5 field value is:1KDI03K
关于linux - 如何在 AWK 中将字段分隔符设置为 ^@(特殊字符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67294970/