フォルダAとフォルダBという2つのフォルダがあります。
diffコマンドを使用して、2つのフォルダのファイルを比較しました。これで、一部のファイルはフォルダAでのみ利用可能で、一部のファイルはフォルダBでのみ利用可能であることを確認した後、これらの一意のファイルを両方のフォルダからフォルダCフォルダという名前のフォルダにコピーしようとしています。 AとB
どうすればいいですか?
ベストアンサー1
使用できるzshの配列減算と中括弧拡張機能、このように:
設定:
$ tree .
.
├── folderA
│ ├── file0
│ ├── file1
│ └── file2
├── folderB
│ ├── file2
│ ├── file3
│ └── file4
└── folderC
3 directories, 6 files
cd folderA
A=(*)
cd ../folderB
B=(*)
cd ..
実装する:
cp folderA/${^A:|B} folderB/${^B:|A} folderC
結果:
$ tree folderC
folderC
├── file0
├── file1
├── file3
└── file4
0 directories, 4 files
これら2つの設定手順では、それぞれフォルダAとBにファイル名を含む配列(および名前)を作成しますA
。B
実行フェーズでは、配列からcp
配列の拡張(すべてプレフィックスが付く)と配列から配列を引いた拡張(すべてプレフィックスが付く)をにコピーする必要があります。A
B
folderA
B
A
folderB
folderC