我是 sed 的新手,我正在尝试找出一种方法来删除超过 6 个字符的文本中的单词。
到目前为止,我已经想出了这个,但它只是给了我一个空文件。
sed -n '/.\{6\}/!d' input > output
输入
但 sed 在管道中过滤文本的能力使其与其他类型的编辑器区别开来。
期望的输出
但它是 sed 的文本,它来自其他类型。
我是 sed 的新手,我正在尝试找出一种方法来删除超过 6 个字符的文本中的单词。
到目前为止,我已经想出了这个,但它只是给了我一个空文件。
sed -n '/.\{6\}/!d' input > output
输入
但 sed 在管道中过滤文本的能力使其与其他类型的编辑器区别开来。
期望的输出
但它是 sed 的文本,它来自其他类型。
你试过了吗
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,}
上面的表达式以满足您的需要。
这应该可以删除包含六个以上字母的单词 - 如果您将单词定义为由字母 AZ 和 az 组成:
sed -e s'/[A-Za-z]\{7,\}//g'