Bash:如何从列中具有特定值的文件中选择行

时间:2010-12-13 12:43:00

标签: linux bash command-line

我有一个需要分析的巨大文件。我想要做的是将那些在某列中具有特定值的行分开。因此,它只选择那些属于某个类别的数据。如何通过简单的bash commnand或脚本来实现。

例如,我想只分隔第8列中值为1,2,3或4的行。该文件以空格分隔。

4 个答案:

答案 0 :(得分:4)

您可以将awk用作:

awk '$8 == 1 || $8 == 2 || $8 == 3 || $8 == 4' file

答案 1 :(得分:3)

使用awk:

awk '$8 >= 1 && $8 <= 4' your_file.txt

答案 2 :(得分:3)

另一个AWK答案:

awk '$8 ~ /1|2|3|4/' inputfile

答案 3 :(得分:2)

又一个awk回答。

awk '$8 ~ /[1-4]/' file

但是,只是为了某种变化,一个bash的答案

while read line ; do
    fields=($line)
    [[ ${fields[7]} =~ [1-4] ]] && echo $line
done < file