基于长度的grep字符串

时间:2019-05-14 06:41:00

标签: bash grep

是否可以使用grep根据特定文件中的长度搜索字符串?

我尝试使用awk,但没有用

awk '$0~"^s" && length($0)==31' strings.xml

如果不使用grep,则可以使用其他命令行工具进行查找。

2 个答案:

答案 0 :(得分:0)

您可以使用:

grep -E '^s.{30}$' strings.xml

正则表达式在行首匹配s,后跟任意30个字符,然后匹配行尾。因此它将与以s开头的正好31个字符的行匹配。

但是awk命令是等效的,因此,如果该命令不起作用,也将无效。

答案 1 :(得分:0)

awk默认是按空格分隔字段,因此,如果要与以s开头且长度为31的第一个匹配项进行匹配,则可以使用:

awk '$1 ~ /^s.{30}$/ {print}' strings.xml

/^s要匹配一个以s开头的字符串,而.{30}$要匹配任何.个字符(行终止符除外){30}恰好30次