Я знаю, что сообщению уже четыре года, но из моего лагеря дальтоников никто не ответил. Если вы различаете цвета, игнорируйте мой пост.
«git status», например, выводит текст, белый на фоне/черный на белом фоне (разборчивый ), темно-серый для удаленного (неразборчивый на черном фоне, но разборчивый на белом фоне )и средне-серый для добавления (ячменя разборчиво на черном фоне, неразборчиво на белом фоне ). Раньше я переключал фон окна терминала на белый/черный, чтобы читать неразборчивый текст. Простое решение больше:
git status | more
Это делает весь текст разборчивым на стандартном белом или черном фоне окна терминала.
Номер строки текущего файла в awk хранится в специальной FNR
переменной(NR
содержит номер строки в целом, а не по -файлу ). Итак, если ваш заголовок находится в первой строке, вы можете просто изменить свою команду, чтобы пропустить эту строку:
awk -vFPAT='([^,]*)|("[^"]+")|","' '{if ($2!~/NULL/ && FNR>1) {print $2}}' Files/*
Кроме того, вы можете пропустить строки, соответствующие определенной строке из вашего заголовка:
awk -vFPAT='([^,]*)|("[^"]+")|","' '{if ($2!~/NULL/ && !/headerString/) {print $2}}' Files/*
Вы можете выполнить всю задачу с помощью одной команды awk:
awk -vFPAT='([^,]*)|("[^"]+")|","' 'FNR > 1 && $2 !~ /NULL/ && !seen[$2]++ {cnt++}
END {print cnt}' *.csv
См. здесь пример этой awk
идиомы, она используется для рассмотрения значения в хеше только в первый раз, когда мы его видим. Таким образом, это полезно для различных задач, таких как исключение дубликатов, исключение уникальных элементов, разрешение появления только N раз и т. д.
См. также примеры со стандартным awk, построенным -в переменных , FNR — количество записей в файле (для одного входного файла, FNR==NR
для каждой строки)
Кроме того, если вы хотите проанализировать все файлы, кроме первой строки, любой командой, вы можете использовать tail
. Это исключает первую строку каждого файла и печатает остальные:
tail -n +2 *.csv | command