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

У меня есть текстовый файл на сервере 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 

  • «группы не существует». и «Недостаточно места в файловых системах»
  • Возможный поврежденный файл passwd
  • установить IP-адрес виртуальной машины каждый раз, начиная с DHCP на CentOS 5.6
  • Настройка графического интерфейса (рабочего стола) для удаленного подключения
  • Любые руководства для манекенов для настройки VPN?
  • Realtek r8169 не работает в CentOS 6.5
  • Включено автостекло, блокировка связки ключей VNC-соединения
  • Есть ли способ чередования двух файловых систем одной структуры?
  • 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 
    Linux и Unix - лучшая ОС в мире.