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" ")

これは、2 つのディレクトリを比較し、コピーの目的でソース アドレスとターゲット アドレスを返します。意図した結果は、両方のフォルダーが同じファイルとフォルダー内にあることです。

cp-cut部分が動かない。cp を手動で実行すると、正しい結果が得られます。カット操作の出力は問題ないようです。

cp-cut 句を除外すると、スクリプトは次のような行を生成します

/Users/tom/Desktop/aa/AWK/awk-parse-email-add-or.textClipping /Users/tom/Desktop/bb

したがって、これは awk クリッピングをフォルダー bb にコピーするための原材料 (ソース ファイルとターゲット ディレクトリ) です。

親切な人が私が間違っている場所を提案できますか?

トム

4

1 に答える 1

0

コマンド置換$(cut -f1 -d" ")およびを使用していますが、入力が必要$(cut -f2 -d" ")なため、これらのコマンドは有効ではありませんcut

代わりに xargs を使用してみてください。最後のパイプを次のように変更します。

| xargs -n 2 cp -r 
于 2011-02-04T15:42:06.200 に答える