我试图解析一个去掉单引号的文件,留下一些随机的和其他的。
到目前为止我试过:

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

这将隔离所有长度超过两个字母(即-w部分)或[[:alpha:]]\{2,\}的单词(因为[AIOaio])。
请注意,如果文本包含元音变音符或重音字符(例如äéß等),[[:alpha:]]确实包含那些iff grep在一个区域设置下运行,该区域设置将它们识别为其字母表的一部分。

08-26 21:34