2014-04-30 81 views
0

以下是我正在解析的路徑。請記住,DIAGPATH正在改變,所以我不想對它進行硬編碼。如何使用xargs命令來讀取文件的內容?

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

因爲xargs的放線正在處理,你把「{}」。你把它放在文件名後面。試試

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

嗨戴夫,非常感謝。這正是我所期待的。 – user3590915

相關問題