【问题标题】:How to save the output of this awk command to file?如何将此 awk 命令的输出保存到文件中?
【发布时间】:2013-01-17 13:53:31
【问题描述】:

我想将此命令保存到另一个文本中: awk '{打印 $2}' 它从文本中提取。 现在我也想保存输出另一个文本。 谢谢

【问题讨论】:

    标签: linux awk output


    【解决方案1】:
    awk '{ print $2 }' text.txt > outputfile.txt
    

    > => 这会将STDOUT 重定向到一个文件。如果文件不存在,它将创建它。如果文件存在,它将清除(实际上)内容并将新数据写入其中

    >> => 这和上面的意思一样,但是如果文件存在,这会追加新的数据。

    例如:

    $ cat /etc/passwd | awk -F: '{ print $1 }' | tail -10 > output.txt
    $ cat output.txt 
    _warmd
    _dovenull
    _netstatistics
    _avbdeviced
    _krb_krbtgt
    _krb_kadmin
    _krb_changepw
    _krb_kerberos
    _krb_anonymous
    _assetcache
    

    您也可以使用命令tee 进行重定向。命令tee 会将STDOUT 重定向到指定文件以及终端屏幕

    有关 shell 重定向的更多信息,请转到以下链接:

    http://www.techtrunch.com/scripting/redirections-and-file-descriptors

    【讨论】:

    • 也许你应该明确指出重定向是 shell 的一个特性,而不是 awk,并且不限于后者。
    • 确保在 awk 操作之前备份文件。 > 销毁了我所有的文件...不。
    • @DavidAnderton,您不应写入与使用 AWK 读取相同的文件。
    • 写入同一个文件是否安全?
    • 如果我不想要 .txt 而想要 .boto 怎么办?
    【解决方案2】:

    有一种方法可以在 awk 本身中执行此操作 (docs)

    ➜ cat text.txt
    line 1
    line 2
    line three
    line 4 4 4
    
    ➜ awk '{print $2}' text.txt
    1
    2
    three
    4
    
    ➜ awk '{print $2 >"text.out"}' text.txt
    
    ➜ cat text.out
    1
    2
    three
    4
    

    【讨论】:

      【解决方案3】:

      试试这个命令。

      cat ORGFILENAME.TXT | awk '{print $2}' > SAVENAME.TXT
      

      谢谢。

      【讨论】:

      • 您不需要catawk 知道如何从文件中读取...
      猜你喜欢
      • 2010-12-24
      • 2022-01-17
      • 1970-01-01
      • 2016-07-13
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      相关资源
      最近更新 更多