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つのディレクトリを比較し、コピーの目的でソースとターゲットのアドレスを返します。意図した結果は、両方のフォルダがそれらの内部の同じファイルとフォルダで終わることです。awked行を使用するcp
cp-cut部分が機能しません。手動でcpを実行すると正しい結果が得られます。カット操作の出力はOKと思われます。
CP-カット句をオフのまま、スクリプトはこの
/Users/tom/Desktop/aa/AWK/awk-parse-email-add-or.textClipping /ユーザー/トムのような行を生成します/デスクトップ/ bb
これは、ソースファイルとターゲットディレクトリで、awkのクリッピングをbbフォルダにコピーするためのものです。
何人かの人が私が間違っている場所を示唆することはありますか?
トム
あなたの提案には何か問題がありますが、混乱しています。私の慎重に構築されたパイプラインが生成する順序付けされたペア(ソースとターゲット)を使用して、目的のcpを実行するにはどうすればよいでしょうか? – Tom
私は上記のスクリプトをcpとcut節を完全に省略して動作させています。スクリプトはスクリプト中にbashで処理できるテキストファイルに出力します。それはうまくいくが、私はパイプを介して直接行う方法があると思う。 – Tom