Как к grep для строки, которая имеет то же число Вы оба потребность и не нуждается

Это не вообще легко объяснить, но легкий просто показать.

У меня есть строки в файле, такие как:

100Dollars              3              IP  
200Dollars              3              IP
300Dollars              4              IP

Мне нужно к grep для строк, которые не имеют никакого '3' во втором столбце. Я попробовал следующее:

egrep -v '3' filename

Однако это не возвращает третью строку из-за наличия 3 в первой части его. Существует мой основной вопрос, если это имеет смысл.

Как я исключаю то, что находится в первом столбце и только grep для того, что находится во втором столбце?

2
задан 18.11.2014, 17:02

4 ответа

Не можете Вы просто сделать grep -v " 3 ", принятие столбцов разграничено пробелами?

1
ответ дан 08.12.2019, 04:46

Как насчет:

awk '$2 != 3' filename
5
ответ дан 08.12.2019, 04:46

Я думаю, что Вы хотите подойти к awk или grep, который может сделать столбцы (среди многих других вещей)

gawk '$1 ~ /3/ && $2 !~ /3/{print $0}' < filename

Должен сделать это.

Это ищет 3 в первом столбце (Столбцы пронумерованы, начав 1 в awk, 0$ целая строка), и не 3 во втором столбце, и раз так распечатайте целую строку (0$)

2
ответ дан 08.12.2019, 04:46

Можно использовать:

grep -v -P '\t3\t' filename

-P регулярное выражение perl-стиля matcher.

2
ответ дан 08.12.2019, 04:46

Теги

Похожие вопросы