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

使用sed查找长度大于120个字符的行,sed,Sed,我想获得批处理文件中长度超过120个字符的行列表。为此,我考虑使用sed。我试过了,但没有成功。我怎样才能做到这一点? 除了使用sed,还有其他方法获取列表吗?? 谢谢 您可以使用grep及其重复量词: grep '.\{120\}' script.sh 使用awk执行此操作的另一种方法: cat file | awk 'length($0) > 120' 使用sed,您有一些选择: sed -e '/.\{120\}/!d' sed -e '/^.\{,119\}$/d' sed -

我想获得批处理文件中长度超过120个字符的行列表。为此,我考虑使用sed。我试过了,但没有成功。我怎样才能做到这一点? 除了使用sed,还有其他方法获取列表吗??
谢谢

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

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

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

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

使用sed,您有一些选择:

sed -e '/.\{120\}/!d'
sed -e '/^.\{,119\}$/d'
sed -ne '/.\{120\}/p'
第一个选项匹配没有(至少)120个字符的行(表达式后面的
是在与前面的模式不匹配的行上执行命令),并删除它们(即不打印它们)

第二个选项匹配从开始(
^
)到结束(
$
)的行,这些行的字符总数从零到119。这些行也将被删除


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

awk'length($0)>120{print NR:“$0}”@choroba无特殊原因。它将在没有它的情况下工作,专门过滤问题名称
sed
。虽然我很欣赏所有其他的答案,但这是唯一一个在sed是你所有的情况下有效的答案。
grep
在大文件(10Gb)上至少比grep快10倍。@choroba我尝试了这个
grep.\{120\}脚本。sh
code,它打印整个文件,并对长度超过120个字符的行进行着色。有没有办法只打印超过一定长度的行号的行?@minto:grep的哪个版本,哪个操作系统?@choroba grep(GNU grep)2.25,Ubuntu 16.04,在Ubuntu 18.04和14.04上都无法复制。