【问题标题】:Extracting an integer from a line with the help of linux script?在linux脚本的帮助下从一行中提取一个整数?
【发布时间】:2009-11-23 06:57:48
【问题描述】:

我有一个文件,其中一行包含:

8号

如何使用 sed、grep 或任何 linux 脚本找出以“数字”开头的行前面的 integer 是什么?

谢谢...

【问题讨论】:

    标签: linux shell


    【解决方案1】:
    awk '$1=="number"{print $2}' file
    

    【讨论】:

    • 谢谢伙计。该命令是否意味着打印字段 2,其中字段 1 == 数字?
    【解决方案2】:

    使用 awk:

    cat ./file.text | awk '/number/ {print $2}'
    

    【讨论】:

    • 我更喜欢使用 cat,使命令更具可读性和可移植性。您可以将 cat 替换为生成要解析的输出的任何内容。
    • 用猫,你增加了 3 个字符。此外,您还创建了一个额外的管道流程。便携的??凭什么?并且将文件提供给 awk 的输入不是/或不太便携?
    【解决方案3】:

    使用 grep 并剪切,这将只返回数字

    cat ./file.txt | grep number | cut -d " " -f 2
    

    【讨论】:

      【解决方案4】:

      另一种方法是使用awk:

      awk '/number/ {print $2}' < ./file.txt
      

      这是一个单一的命令,有些人更喜欢。如果它是一个大文件,您可能更喜欢cat | grep | cut-方式,因为这三个程序在不同的进程中运行。

      【讨论】:

      • 如果文件很大,请使用 awk!。 cat + grep + cut +whatever 对大文件进行昂贵的操作。此外,不需要重定向。只需将文件直接传递给 awk。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多