我有以下字符串
某物(1)^^^某物(2)^^^某物(3)^^^ ... ^^^某物(n)
如何查找
某物
在字符串中。
答案1
这个命令可以帮你完成以下任务:
awk -F " " '{print NF}' filename
你也可以用你喜欢的字段分隔符代替空格。如果你坚持使用 ^^^ 作为字段分隔符,那么你应该使用
awk -F '\\^\\^\\^' "{print NF}" filename
答案2
如果您显示真实数据,我可以为您提供更好的答案,但假设您正在寻找以 结尾的最长的非空白字符串()
,您可以这样做:
$ string="foo(bar)blah blah bob harry(baz) more stuff this(one) not that one ()"
$ echo $string | grep -Po '[^\s]+\([^\)]+?\)' | wc -l
3
解释
-P
启用标志grep
PCRE 函数并-o
导致它仅在单独的行上打印每个匹配的字符串。
正则表达式匹配:
[^\s]+
:尽可能多的非空白字符\(
:一个左括号[^\)]+?\)
)
:尽可能多的非字符,直到第一个)
。
这将打印:
$ echo $string | grep -Po '[^\s]+\([^\)]+?\)'
foo(bar)
harry(baz)
this(one)
然后你通过它来wc -l
计算行数。