Linux 删除字符串中除'外的所有单字符单词;a'';i';和';o';
我试图解析一个删除了单引号的文件,留下一些随机的等等 到目前为止,我已经尝试:Linux 删除字符串中除'外的所有单字符单词;a'';i';和';o';,linux,awk,sed,grep,tr,Linux,Awk,Sed,Grep,Tr,我试图解析一个删除了单引号的文件,留下一些随机的等等 到目前为止,我已经尝试: echo "a b c d e f g h i o omgifack" | grep -o '[^bcdefghjklmnpqrstuvBCDEFGHJKLMNPQRSTUV]\{2,\\}' echo "a b c d e f g h i o omgifack" | tr -d '[bcdefghjklmnpqrstuvwxyzBCDEFGHJKLMNPQRSTUVWXYZ]' 我的示例基于以下内容: echo
echo "a b c d e f g h i o omgifack" | grep -o '[^bcdefghjklmnpqrstuvBCDEFGHJKLMNPQRSTUV]\{2,\\}'
echo "a b c d e f g h i o omgifack" | tr -d '[bcdefghjklmnpqrstuvwxyzBCDEFGHJKLMNPQRSTUVWXYZ]'
我的示例基于以下内容:
echo "a b c d e f g h i o omgifack" | grep -o '[a-z]\{2,\\}'
期望输出:
>a i o omgifack
我似乎不明白,但我肯定我遗漏了一些明显的东西。开放使用awk、sed、tr、grep的解决方案。。。任何有用的东西。谢谢 我可能会使用类似
echo "a b c d e f g h i o omgifack" | grep -wo '[[:alpha:]]\{2,\}\|[AIOaio]'
a
i
o
omgifack
这将隔离所有长度超过两个字母(即[:alpha:]\{2,\}
部分)或[AIOaio]
中的一个字母的整词(因为-w
)
请注意,如果文本包含umlauts或重音字符(如ä
,ä
,ß
等),[:alpha:]
确实包括那些在将它们识别为字母表一部分的区域设置下运行的iff grep。这可能适用于您(GNU-sed):
删除所有不是
a
、i
或u
(大写或小写)且后跟可能空格的单例字符。请在类似问题中分享所需输出。
sed 's/\b[^aio ]\b \?//Ig' file