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

Существует входной файл с разделителями 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: как объединить содержимое строк с дублирующимся идентификатором в первом поле
  • замените шаблон, найденный с номером плюс 1 в той же строке
  • удаление избыточности из выходных столбцов
  • awk: пустая строка с датой
  • Группируйте содержимое файла двумя полями и суммируйте третье поле
  • BASH: использование awk для фильтрации уникальных строк приводит к 0 массиву длины
  • поле печати, которое содержит определенное значение
  • awk, если регулярное выражение не совпало
  • Как вычесть даты из колонок с помощью awk?
  • Учебный материал Sed and Awk
  • Сравните второй столбец 1-го файла и 1-й столбец второго файла и распечатайте сопоставленные записи 1-го файла
  • Linux и Unix - лучшая ОС в мире.