【发布时间】:2023-03-15 23:23:01
【问题描述】:
我必须编写一个单行 shell 命令,它将计算所有以括号中的十进制数字开头、大小写字母混合并以句点结尾的行。
我很困惑。我尝试了一些,但我无法得到括号并以句号部分结尾。
【问题讨论】:
-
一个具有预期输出的例子会更好。
我必须编写一个单行 shell 命令,它将计算所有以括号中的十进制数字开头、大小写字母混合并以句点结尾的行。
我很困惑。我尝试了一些,但我无法得到括号并以句号部分结尾。
【问题讨论】:
括号的语法取决于您使用的正则表达式方言。
grep -c '^([0-9]*) [A-Za-z]*\.$' file
使用文字括号,而
grep -Ec '^\([0-9]+\) [A-Za-z]+\.$' file
需要反斜杠。还要注意使用单引号来防止 shell 干预参数。
【讨论】:
这可能会:
cat file
Here are my data
Some number (12.3)
Even more
And more
And end here.
This does not count
awk '/\([0-9)+\.[0-9]+\)/ {f=1} f {a++} /[^0-9]\.[^0-9]*/ {f=0} END {print a}' file
4
当找到(<digit>.<digit>)形式的数字时开始计数
并以句点. 结尾,前面没有数字[^0-9]\.[^0-9]*
【讨论】: