![在特定列中选择唯一值](https://linux22.com/image/196947/%E5%9C%A8%E7%89%B9%E5%AE%9A%E5%88%97%E4%B8%AD%E9%80%89%E6%8B%A9%E5%94%AF%E4%B8%80%E5%80%BC.png)
我尝试使用以下内容:
awk '{print $1}' your_file | sort | uniq
然而,输出结果并不如预期。以下是我感兴趣的列中的值的示例:
"Non-cancer illness code, self-reported"
"Birth weight known"
每个字段中的空白是否会导致问题?如果是这样,我该如何解决?谢谢你!
答案1
要使用 提取文件中的第一个制表符分隔字段awk
,请确保将字段分隔符设置为制表符。如下所示,您可以通过\t
为选项提供选项参数来完成此操作-F
。
awk -F '\t' '{ print $1 }' file
在这里使用它也相对容易,cut
因为制表符是它的默认分隔符,并且您不需要进行任何其他花哨的处理:
cut -f 1 file
传递它sort | uniq
以获得独特的行,或者sort -u
如果您想减少打字量,则传递它。
你遇到的问题是awk
您遇到了默认使用的任何空白(制表符或空格的运行)作为其分隔符,并且您的第一个字段包含空格,导致实用程序错误解释第一个字段单词作为第一个字段。