我试图解析一个去掉单引号的文件,留下一些随机的和其他的。
到目前为止我试过:
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在一个区域设置下运行,该区域设置将它们识别为其字母表的一部分。