Как исключить строки, которые дали столбцы?

Существует входной файл с разделителями TAB с разделителями.

Нам нужно удалить строки, которые имеют «NA» для четвертого и одиннадцатого столбцов.

Вопрос: как мы можем это сделать в awk?

2 Solutions collect form web for “Как исключить строки, которые дали столбцы?”

 awk -F"\t" '$4 != "NA" || $11 != "NA"' filename 

Примечание. Awk не редактирует файл на месте. Если вы хотите сохранить изменения в файле, выполните следующие действия:

 tmp=$(mktemp) awk -F"\t" '...' filename > "$tmp" && mv "$tmp" filename 

Вы говорите awk для печати строк, которые не соответствуют вашим критериям.

 BEGIN { FS="\t" } $4 != "NA" || $11 != "NA" 

Это обратная логическая логика, где ~a|~b == a&b .

  • сравнение строк с awk vs во время чтения строки
  • Как добавить каждый вывод awk
  • awk не может печатать элемент массива
  • Как захватить номер порта из этого выхода `lsof -F`, используя awk (или что-то лучше)?
  • Разделить и распечатать
  • Печать месяца между двумя словами
  • От файла gpx до csv
  • awk для консолидации большого табличного файла?
  • Может ли Awk читать экранированные строки? Т.е. читать прошлые строки
  • распечатать определенную строку из нескольких файлов
  • переупорядочить значения в одном столбце, не затрагивая другие столбцы, используя awk или sed
  • Linux и Unix - лучшая ОС в мире.