16

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

4

3 回答 3

29

使用 awk 的另一种方法:

cat file | awk 'length($0) > 120'
于 2012-10-10T08:57:29.363 回答
19

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

grep '.\{120\}' script.sh
于 2012-10-10T08:56:16.343 回答
10

使用 sed,您有一些选择:

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

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

第二个选项匹配从 start ( ^) 到 end ( $) 总共有 0 到 119 个字符的行。这些行也被删除。

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

于 2012-10-10T11:12:23.487 回答