2016-04-07 14 views
0

ファイルのリストを含むテキストファイルを取得し、すべてをディレクトリにコピーしようとしています。このディレクトリ内では、一意のディレクトリ名を持ちます。テキスト構造ファイルの例を以下に見ることができます。リスト内のすべてのファイルを一意のディレクトリにコピー

/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000003/s01_2011_11_01/a_.edf 
/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000003/s01_2011_11_01/a_1.edf 
/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000003/s02_2011_11_11/a_.edf 
/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000003/s02_2011_11_11/a_1.edf 
/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000005/s01_2009_02_13/a_.edf 
/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000005/s02_2010_10_02/a_.edf 
/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000005/s03_2010_10_02/a_.edf 
/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000005/s04_2010_10_03/a_.edf 
/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000005/s04_2010_10_03/a_1.edf 
/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000005/s04_2010_10_03/a_2.edf 
/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000005/s04_2010_10_03/a_3.edf 
/data/isip/data/tuh_eeg/v0.6.0/edf/001/00000005/s04_2010_10_03/a_4.edf 

が、私はこのリストを通過するシェルコマンドやEmacsのマクロを必要とし、現在の作業ディレクトリ内で一意のディレクトリにそれらすべてをコピーします。一意のディレクトリはファイルによって異なります。例えば、最初の2つのファイルのため、ディレクトリは

/001/00000003/s01_2011_11_01/ 

だろう、私はEmacsのマクロを使用してこれをやって試してみましたが、私はそれが仕事を得ることができませんでした。シェルコマンドまたはEMACマクロが機能します。以下のような単純な

答えて

0

何か:

cat list | sed "s/^.*edf\/\(.*\)\/\(.*\)$/mkdir -p root_dir\/\1 \&\& cp \0 root_dir\/\1\/\2/" | sh 

場合はOSX上 - GNU-のsedをインストールし、gsedの代わりに、sedを使用します。 |コマンドなしでコマンドを実行するそれが何をするか見てsh。もちろんroot_dirを微調整してください。

関連する問題