Unix 如何使用xargs命令读取文件的内容?
下面是我正在解析的路径。请记住DIAGPATH正在更改,所以我不想硬编码它Unix 如何使用xargs命令读取文件的内容?,unix,xargs,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 '{pr
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
因为xargs把它正在处理的行放在你放{}的地方。你把它放在文件名后面。试一试
su - db2inst1 -c "db2 get dbm cfg | grep DIAGPATH | grep -v ALT_DIAGPATH" |
awk '{print $7}'| xargs -I '{}' tail -20 '{}'/db2diag.log
嗨,戴夫,非常感谢你。这正是我想要的。