【问题标题】:How do I use the xargs command to read the content of a file?如何使用 xargs 命令读取文件的内容?
【发布时间】:2016-05-04 10:42:59
【问题描述】:

下面是我正在解析的路径。请记住,DIAGPATH 正在发生变化,因此我不想对其进行硬编码。

DIAGPATH=/home/db2inst1/sqllib/db2dump # Diagnostic data directory path

在那个目录下有我想读取最后 20 行的文件。其中一个文件名为 db2diag.log。

这是我的命令,但它不起作用。

su - db2inst1 -c "db2 get dbm cfg | grep DIAGPATH | grep -v ALT_DIAGPATH" |
  awk '{print $7}'| xargs -I '{}' tail -20 db2diag.log'{}' 

这是上述命令的输出:

db2diag.log/home/db2inst1/sqllib/db2dump: A file or directory in the path name does not exist.

我不确定为什么将“db2diag.log”放在开头。它应该看起来像这样,它应该给出输出的最后 20 行:

tail -20 /home/db2inst1/sqllib/db2dump/db2diag.log

【问题讨论】:

    标签: unix xargs


    【解决方案1】:

    因为 xargs 将它正在处理的行放在您放置“{}”的位置。你把它放在文件名之后。试试

    su - db2inst1 -c "db2 get dbm cfg | grep DIAGPATH | grep -v ALT_DIAGPATH" |
      awk '{print $7}'| xargs -I '{}' tail -20 '{}'/db2diag.log
    

    【讨论】:

    • 嗨,戴夫,非常感谢。这正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 2010-10-25
    • 2019-02-20
    • 2017-04-11
    • 1970-01-01
    相关资源
    最近更新 更多