如何根据条件从文件中的一个单词中删除一个特定字符

如何根据条件从文件中的一个单词中删除一个特定字符

如何删除文件内符合一个条件的某些单词的一个或多个特定字符,如示例中所示:

这里的条件是脚本将删除所有A每个偶数长度单词的字符。

之前的文件内容:

abad a_12
asf     aga 3

之后的文件内容:

bd _12
asf     aga 3

我曾尝试过sed但我不知道如何把条件改为G

sed 's/a//g'

答案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

相关内容