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