2011-02-04 77 views
0
var=$(pwd);diff -x .DS* -r aa bb | cut -f3,4 -d' '| sed 's/\://' | awk -v "var=$var" 'BEGIN{OFS="/"} {split($2,a,"-"); a[1]=toupper(a[1]) if ($1 ~/^bb/) {print var, $1, $2 " " var, "aa"} 
else {print var, $1, $2 " " var, "bb"}}' | cp -r $(cut -f1 -d" ") $(cut -f2 -d" ") 

這比較兩個目錄並返回源和目標地址用於複製目的。預期的結果是兩個文件夾最終都有相同的文件和文件夾。cp使用虛線

cp-cut部分不起作用。手動執行cp會產生正確的結果。裁減操作輸出似乎沒問題。

離開關閉CP-切子句,該腳本產生這樣

/Users/tom/Desktop/aa/AWK/awk-parse-email-add-or.textClipping /用戶/湯姆線/ Desktop/bb

所以這是原始材料 - 源文件和目標目錄 - 將awk剪輯複製到文件夾bb。

有人會建議我哪裏出錯了嗎?

湯姆

回答

0

您使用命令替換,$(cut -f1 -d" ")$(cut -f2 -d" "),但由於cut需要輸入這些命令都無效。

嘗試使用xargs代替。將您的最後一根管道更改爲:

| xargs -n 2 cp -r 
+0

按照您的建議發生了一些事情,但它很混亂。我該如何調整xargs以使用有序的對 - 源和目標 - 我精心構建的管道產生的目標cp? – Tom 2011-02-04 19:51:35