Это будет обрабатывать столбец «0» так же, как пустой столбец, но дает более простую идею:
awk 'A[$c2] + B[$c3] + C[$c4]==0;
c2{A[$c2]++; next} c3{B[$c3]++;next} c4 {C[$c4]++}
' c2=2 c3=3 c4=4 input
(установите c2, c3 и c4 фактические номера столбцов, которые вам нужны)
Чтобы расширить это для вашего случая, вы должны иметь возможность использовать:
awk 'A[$c2] + B[$c3] + C[$c4]==0;
match($c2,"[^ ]"){A[$c2]++; next}
match($c3,"[^ ]"){B[$c3]++;next}
match($c4,"[^ ]"){C[$c4]++}
' FS=\\t c2=2 c3=3 c4=4 input
Расширения файлов не являются особенными, как в Windows (кто-нибудь еще помнит evil.pdf.exe
? ), поэтому они нигде не "определены".
Существуют соглашения, такие как .c
для исходного кода C, и некоторые программы меняют поведение в зависимости от того, что стоит после финального ".
".
Имя файла Unix/Linux может содержать любой символ, КРОМЕ "/
" иNUL
(0x00
).
Чего вы пытаетесь достичь?
Linux (ядро )и Gnu/Linux (операционная система )и другие Unix-системы не имеют расширений файлов(Ни доза Microsoft NT (ОС, которую MS -Windows работает на)). Однако многим файл -удается сделать. Поэтому конфигурация файлового -менеджера будет местом для поиска. (также команда file
.)