我将 pig 文件的输出存储在一个目录中,其中包含由分隔符分隔的多个列的行\\u0001
。
现在在 shell 脚本中我想从输出中获取第 7 列字段。
我尝试了以下命令但没有得到所需的输出:
cnt=`awk -F '^A' '{print $7,$1}' $f`
cnt=`cut -d'\\u0001' -f8 $f | awk '{s+=$0}END{print s+0}'`
如何实现同样的效果?
以下是示例文件:
printf "c1\\u0001c2\\u0001c3\\u0001c4\\u0001c5\\u0001c6\\u0001c7\\u0001c8" > 001.txt
答案1
尝试以下语法:
awk -F '\001' '{print $7}' < myfile
在哪里:
-F
- 使用下一个参数作为字段分隔符,'\001'
- 用 1 的数值来表达一个字节的方法,'{print $7}'
- 对于每一行输入,输出第 7 个字段,后跟换行符,< myfile
- 用作myfile
输入。
答案2
您可以使用cut
命令来实现这一点,例如
cut -d $'\001' -f7 001.txt
-d
您的分隔符在哪里,-f
列号在哪里。