Вопрос по shell, awk – Как удалить строки, начинающиеся с «C» с помощью awk?

4

Как я могу удалить строки, начинающиеся с & quot; C & quot; из текстового файла с помощьюawk?

Любые предложения, пожалуйста.

В качестве sidenote вы можете найтиthis tutorial быть очень полезным в будущем. Eitan T

Ваш Ответ

4   ответа
11

Если данные в файлеdata.txt, затем

Сawk:

awk '!/^C/' data.txt

Сgrep:

grep -v ^C data.txt 

Отобразить все строки без & quot; C & quot; в начале.

^C означает совпадение с буквой «C»; вstart линии.! в awk, и-v в grep отрицаем совпадение.

Огромное спасибо. sagar
0

Это элементарно:

awk '/^[^C]/'

Когда вы опускаете{} раздел команды awk, что означает то же самое, что и{print} или жеprint the line, А также// повторный фильтр, который применяется к stdin. Будут обработаны только те строки, которые соответствуют фильтру.

^[^C] является регулярным выражением Первый^ якорь, это значитthe beginning of the line; а также[^C] это класс символов, который означаетany character except C.

1

Сsed:

sed -i~ '/^C/d' inFile
Хотя это не совсем то, о чем просил пользователь, - поскольку он используетsed вместоawk - я предполагаю, что кто-то спрашивает, как удалить символы, начинающиеся с & quot; C & quot; может быть, безопасность этого ответа. Он фактически изменяет файл вместо записи результата в стандартный вывод и переименовывает оригинал с тильдой в конце.
2

Ты можешь:

awk '!/^C/{print $0}'

Похожие вопросы