【问题标题】:Shell Command for lines that have decimal number in parenthesis & upper/lower case letters括号和大写/小写字母中包含十进制数字的行的 Shell 命令
【发布时间】:2023-03-15 23:23:01
【问题描述】:

我必须编写一个单行 shell 命令,它将计算所有以括号中的十进制数字开头、大小写字母混合并以句点结尾的行。

我很困惑。我尝试了一些,但我无法得到括号并以句号部分结尾。

【问题讨论】:

标签: linux shell unix awk


【解决方案1】:

括号的语法取决于您使用的正则表达式方言。

grep -c '^([0-9]*) [A-Za-z]*\.$' file

使用文字括号,而

grep -Ec '^\([0-9]+\) [A-Za-z]+\.$' file

需要反斜杠。还要注意使用单引号来防止 shell 干预参数。

【讨论】:

    【解决方案2】:

    这可能会:

    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]*

    【讨论】:

      猜你喜欢
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 2012-02-11
      • 2013-02-04
      相关资源
      最近更新 更多