使用sed查找长度大于120个字符的行

时间:2012-10-10 08:53:11

标签: sed

我想获得批处理文件中长度超过120个字符的行列表。为此我想到了使用sed。我试过,但我没有成功。我怎样才能实现这一目标? 有没有其他方法来获得除了使用sed之外的列表? 谢谢..

3 个答案:

答案 0 :(得分:19)

使用awk执行此操作的另一种方法:

cat file | awk 'length($0) > 120'

答案 1 :(得分:10)

您可以使用grep及其重复量词:

grep '.\{120\}' script.sh

答案 2 :(得分:6)

使用sed,你有一些选择:

sed -e '/.\{120\}/!d'
sed -e '/^.\{,119\}$/d'
sed -ne '/.\{120\}/p'

第一个选项匹配没有(至少)120个字符的行(表达式之后的!匹配模式的行上执行命令在它之前),并删除它们(即不打印它们)。

第二个选项匹配从开头(^)到结尾($)的行总数从0到119的行。这些行也会被删除。

第三个选项是使用-n标志,它告诉sed默认不打印行,并且只有在我们告诉它时才打印。在这种情况下,我们匹配具有(至少)120个字符的行,并使用p来打印它们。