我是sed的新手,我正试图找出一种方法来删除超过6个字符的文字中的单词。
到目前为止,我已经想出了这个,但它只是给了我一个空文件。
sed -n '/.\{6\}/!d' input > output
输入
但是,sed能够在管道中过滤文本,这特别区别于其他类型的编辑器。
所需的输出
但是,它来自其他类型的文本。
答案 0 :(得分:2)
你试过吗
sed -r 's/\b\w{6,}\s?\b//g'
对于你的例子:
$ echo "But it is sed's ability to filter text in a pipeline which particularly distinguishes it from other types of editors." | sed -r 's/\b\w{6,}\s?\b//g'
But it is sed's to text in a which it from other types of .
编辑:以上内容会删除 6个字符或更长的字词。您可能希望修改上面表达式中的{6,}
以满足您的需求。
答案 1 :(得分:1)
如果您将单词定义为由字母A-Z和a-z组成,则应该可以删除包含六个以上字母的单词:
sed -e s'/[A-Za-z]\{7,\}//g'