Bash: как выбрать строки из файла, которые имеют конкретное значение в столбце - PullRequest
4 голосов
/ 13 декабря 2010

У меня есть огромный файл, который мне нужно проанализировать.Что я хочу сделать, это отделить те строки, которые имеют определенные значения в определенном столбце.Таким образом, все равно что выбирать только те данные, которые принадлежат к определенной категории.Как это можно сделать простым комнандом или скриптом bash.

Например, я хочу отделить только те строки, которые имеют значения 1, 2, 3 или 4 в 8-м столбце.Файл разделен пробелом.

Ответы [ 4 ]

4 голосов
/ 13 декабря 2010

Вы можете использовать awk как:

awk '$8 == 1 || $8 == 2 || $8 == 3 || $8 == 4' file
3 голосов
/ 13 декабря 2010

Еще один ответ AWK:

awk '$8 ~ /1|2|3|4/' inputfile
3 голосов
/ 13 декабря 2010

Используйте awk:

awk '$8 >= 1 && $8 <= 4' your_file.txt
2 голосов
/ 13 декабря 2010

Еще один ответ по awk.

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

Но, для некоторого разнообразия, ответ bash

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