Linux Bash:如何从列中具有特定值的文件中选择行
我有一个巨大的文件需要分析。我想做的是在某一列中分离那些具有特定值的行。因此,这就像只选择属于某一类别的数据。如何使用简单的bash命令或脚本实现这一点 例如,我只想分离第8列中值为1、2、3或4的行。文件以空格分隔。您可以将awk用作:Linux Bash:如何从列中具有特定值的文件中选择行,linux,bash,command-line,Linux,Bash,Command Line,我有一个巨大的文件需要分析。我想做的是在某一列中分离那些具有特定值的行。因此,这就像只选择属于某一类别的数据。如何使用简单的bash命令或脚本实现这一点 例如,我只想分离第8列中值为1、2、3或4的行。文件以空格分隔。您可以将awk用作: awk '$8 == 1 || $8 == 2 || $8 == 3 || $8 == 4' file 使用awk: awk '$8 >= 1 && $8 <= 4' your_file.txt awk'$8>=1&&8又是一个
awk '$8 == 1 || $8 == 2 || $8 == 3 || $8 == 4' file
使用awk:
awk '$8 >= 1 && $8 <= 4' your_file.txt
awk'$8>=1&&8又是一个awk答案
awk '$8 ~ /[1-4]/' file
但是,只是为了一些变化,一个简单的答案
while read line ; do
fields=($line)
[[ ${fields[7]} =~ [1-4] ]] && echo $line
done < file
读行时;做
字段=($line)
[${fields[7]}=~[1-4]]&&echo$行
完成<文件
另一个AWK答案:
awk '$8 ~ /1|2|3|4/' inputfile
如果该文件是gzip文件,我需要压缩-c文件|…,该怎么办?我无法在管道中运行awk方法。如果输入文件是gzip:gunzip-c input.gz | awk'BEGIN{FS=“\t”}$5==“en”| |$13==“en”| gzip>output.gz