Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 删除字符串中除'外的所有单字符单词;a'';i';和';o';_Linux_Awk_Sed_Grep_Tr - Fatal编程技术网

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