Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 如何使用xargs命令读取文件的内容?_Unix_Xargs - Fatal编程技术网

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

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正在更改,所以我不想硬编码它

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

嗨,戴夫,非常感谢你。这正是我想要的。