如何使用sed命令保持一行中的特定字符?

时间:2018-04-10 08:42:08

标签: bash sed

我尝试只打印一行中的特定字符,而不是必须排序,并且可能不止一次出现。我为它搜索了sed命令,但发现只能指定要删除的字符而不是保留字符。 感谢

例如:

For line "helloabcdabcdhello"
And desired characters: h,l
Output should be: hllhll

1 个答案:

答案 0 :(得分:2)

要在字符串中打印特定字符,请删除所需字符的补充,例如tr

$ echo this is a test | tr -c -d aieo
iiae$

注意,我不想要换行符。有了Bash:

$ foo="this is a test"
$ echo ${foo//[^aeio]/}
iiae

但请发布预期输出的正确样本。您将吸引更多的爱好者和专家,并获得更多更好的质量答案。

修改:将您的示例与sed一起使用:

$ echo helloabcdabcdhello | sed 's/[^hl]//g'
hllhll