2017-02-17 1 views
-3

У меня есть текстовый файл со словами в столбце 2 и некоторые номера, соответствующие слову в других столбцах. Я хочу удалить все строки, где слова начинаются с строчной буквы. есть ли одна команда, которую я могу использовать?Bash: Как выбрать все строки, начинающиеся с заглавной буквы в определенном столбце

Спасибо!

+2

На этом общем уровне не вопрос программирования - голосование закрывается. Вероятно, вы ищете 'grep' и/или Awk. – tripleee

+0

'есть ли одна команда, которую я могу использовать?' Да, есть, вы можете использовать grep. –

+0

Текстовые файлы не имеют столбцов. – choroba

ответ

1
$ cat test.txt 
1,abc,2 
3,Abc,4 
5,bcd,6 
7,Bcd,8 


$ awk -F "," '$2 ~ /^[A-Z]/{print "Col1 " $1 " Col3 " $3}' test.txt 
Col1 3 Col3 4 
Col1 7 Col3 8 

Вы не указали формат входного файла, я предполагаю, что это CSV.

Флаг AWK -F, говорит, что делится на запятую. Затем вы получаете столбцы, доступные в awk-скрипте, как $ 1, $ 2, $ 3 и т. Д.

Фильтр awk в начале гарантирует, что второй столбец соответствует регулярному выражению/^ [AZ]/и для каждого успешного Соответствует запросу печати.

+0

классно, спасибо большое! – User2017

+0

Du behover inte ha dubbelfnuttar runt kommat. –

Смежные вопросы