根据unix中的列值拆分文本文件

时间:2017-05-13 17:50:50

标签: unix awk split grep

我有一个文本文件:

head train_test_split.txt 
1 0
2 1
3 0
4 1
5 1

我想要做的是将第二列值为1的第一列值保存到文件train.txt

因此,第二列值的相应第一列值为1:2,4,5。所以,在我想要的train.txt文件中:

2
4
5

我怎样才能轻松完成unix?

2 个答案:

答案 0 :(得分:4)

您可以使用awk

awk '$2 == 1 { print $1 }' inputfile

$2 == 1是一个过滤器, 匹配第二列为1的行, 并且print $1表示打印第一列。

答案 1 :(得分:1)

Perl:

$ perl -lane 'print "$F[0]" if $F[1]==1' file

或GNU grep:

$ grep -oP '^(\S+)(?=[ \t]+1$)' file

awk是最好的。使用awk ...