使用sed删除大于6个字符的所有单词

时间:2013-10-06 14:31:58

标签: sed

我是sed的新手,我正试图找出一种方法来删除超过6个字符的文字中的单词。

到目前为止,我已经想出了这个,但它只是给了我一个空文件。

sed -n '/.\{6\}/!d' input > output
  

输入

     

但是,sed能够在管道中过滤文本,这特别区别于其他类型的编辑器。

     

所需的输出

     

但是,它来自其他类型的文本。

2 个答案:

答案 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'