如何使用xargs命令读取文件内容?

时间:2014-04-30 21:10:35

标签: unix xargs

以下是我正在解析的路径。请记住,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

1 个答案:

答案 0 :(得分:0)

因为xargs放置了它正在处理放置'{}'的行。你把它放在文件名后面。尝试

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