Zsh: prepend $ (<list.txt) berdebat dengan direktori

0

Saya menggunakan cp $(<list.txt) new_folderuntuk menyalin daftar file (nama file masuk list.txt) ke folder baru. Seperti halnya file harus dalam folder yang sama dengan list.txt.

Apakah ada cara mudah untuk membuat ini berfungsi jika file sebenarnya berada di direktori yang terpisah list.txt? Mungkin menambahkan setiap nama file dengan path?

Meltemi
sumber

Jawaban:

1

$(<list.txt)menggunakan proses substitusi sehingga Anda dapat melempar perintah apa pun yang Anda inginkan di antara tanda kurung untuk mengunyah konten list.txtke isi hati Anda.

Sesuatu seperti cp $(sed -e 's/^/path\/goes\/here\//' list.txt) new_folderharus melakukan triknya.

Haegin
sumber
Terima kasih! Mencoba cp $(sed -e 's/^source_dir\//' list.txt) target_dirtetapi mendapatkan kesalahan "baris baru yang tidak terhapus di dalam pola substitusi". FYI - list.txtada di direktori induk keduanya source_dirdan target_dir.
Meltemi
Jika ini adalah satu hal yang akan Anda lakukan, saya hanya akan memindahkan list.txt di dalam source_dir dan menambahkan ../ ke bagian depan pola penggantian. Kedengarannya lebih mudah daripada melawan sed. Saya berasumsi Anda tidak memiliki baris baru literal dalam pola penggantian untuk sed?
Haegin