исключить строки из файла на основе определенных значений в определенных столбцах

У меня есть текстовый файл на сервере Linux CentOS 7, который содержит много записей в следующем формате:

1234567890123456, 1, 17, cde, Test Test 1234567890123456, 2, 17, cde, Test Test 1234567890123456, 3, 17, cde, Test Test 1234567890123456, 4, 17, cde, Test Test 1234567890123456, 5, 17, cde, Test Test 1234567890123456, 1, 18, cde, Test Test 1234567890123456, 1, 17, cde, Test Test 

какую команду я должен использовать для удаления

 1, 17 2, 17 3, 17 4, 17 

поэтому результат должен быть

 1234567890123456, 5, 17, cde, Test Test 1234567890123456, 1, 18, cde, Test Test 

2 Solutions collect form web for “исключить строки из файла на основе определенных значений в определенных столбцах”

awk- подход:

 awk -F, '!($2<5 && $3==17)' file 

Выход:

 1234567890123456, 5, 17, cde, Test Test 1234567890123456, 1, 18, cde, Test Test 

  • -F, – разделитель полей

  • $2 , $3 – представляют собой второе и третье поля соответственно

Чтобы исключить эти точные значения, воспользовавшись общностью, что исключение поля 3 всегда равно 17:

 awk -F, '!($3 == 17 && ($2 == 1 || $2 == 2 || $2 == 3 || $2 == 4))' < input > output 
  • Firewalld переадресация между неработающими зонами
  • Chrooted sftp дает ошибку «Разрешение отказа»
  • «Нет такого файла или каталога», когда я пытаюсь отформатировать логический том
  • Каков наилучший способ установки Oracle 11g R2 и SQL Developer на CentOS 7 / RHEL 7?
  • Я не могу получить CentOS 7 iso (на жестком диске) для загрузки с GRUB2
  • В RHEL / CentOS 7, действительно ли mv делает cp & rm в одной и той же файловой системе?
  • Ошибка при ручной установке вручную в CentOS
  • Установка Centos / usr в новый раздел
  • Редактировать файл в CentOS 6.3 Минимальный
  • CentOS5, RHEL5, Java-зависимые пакеты, альтернативные JVM / JDK
  • команда ifconfig не найдена
  • Symlink в каталоге init.d заменяется обычным файлом после перезагрузки системы
  • Linux и Unix - лучшая ОС в мире.