我有一个包含一些数据的文件,我想只使用第一列作为我的脚本的stdin,但是我无法提取它。 我试过用这个
awk -F"\t" '{print $1}' inputs.tsv
但它只显示第一列的第一个字母。我尝试了其他一些东西,但它要么显示整个文件,要么只显示第一列的第一个字母。
我的文件看起来像这样:
Harry_Potter 1
Lord_of_the_rings 10
Shameless 23
....
答案 0 :(得分:4)
您可以使用所有Unix和Linux系统上提供的cut
:
cut -f1 inputs.tsv
您无需指定-d
选项,因为tab是默认分隔符。来自man cut
:
-d delim Use delim as the field delimiter character instead of the tab character.
正如本杰明正确地指出的那样,你的awk
命令确实是正确的。 Shell将literal \ t作为参数传递,awk将其解释为选项卡,而其他命令(如cut
)可能不会。
在Bash中,正确的表示方式是使用ANSI引用,如下所示:
awk -F$'\t' '{print $1}' inputs.tsv
不确定为什么你只把第一个字符作为输出。
您可能想看一下这篇文章:
答案 1 :(得分:2)