Как удалить один конкретный символ из слова внутри файл на основе условия

Как я могу удалить один или несколько конкретных символов некоторых слов в файле, которые соответствуют одному условию, как в примере:

Условие здесь его сценарий удаляет все символы a каждого слова четной длины.

содержимое файла до:

abad a_12
asf     aga 3

содержимое файла после:

bd _12
asf     aga 3

Я пробовал с sed но я не знаю, как я могу поставить условие вместо g :

sed 's/a//g'
2
задан 12 November 2020 в 19:31

1 ответ

В awk это довольно просто, предполагая, что "слово" является полем, разделенным пробелами:

awk '{for(i=1;i<=NF;i++){if( !(length($i)%2) ) gsub("a","",$i)}} 1'

пример:

$ awk '{for(i=1;i<=NF;i++){if( !(length($i)%2) ) gsub("a","",$i)}} 1' file
bd _12
asf     aga 3
3
ответ дан 12 November 2020 в 16:41

Другие вопросы по тегам:

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