使用sed查找长度大于120个字符的行
我想获得批处理文件中长度超过120个字符的行列表。为此,我考虑使用sed。我试过了,但没有成功。我怎样才能做到这一点? 除了使用sed,还有其他方法获取列表吗??使用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 -
谢谢 您可以使用
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上都无法复制。