移動するファイルの場所のリストを含むテキスト ファイルを取得しました。最初に一時ディレクトリに移動し、ソース ディレクトリでいくつかの操作を行ってから、ファイルを元の場所に戻します。
リスト ファイルは、次のような find コマンドによって生成される形式です。
~/$ find . -name "*.[ch]" > ~/tmp/my_file_list.txt
現在sed
、画面上のファイルを操作するために使用し、その出力をカットアンドペーストしてコマンドを発行しています。これは不快ですが、機能します:
~/$ sed -r 's_.+_cp & ~/tmp/_' ~/tmp/my_file_list.txt
(出力をコピーして貼り付けてから、ファイルを元に戻します)
~/$ sed -r 's_.+/(.+)_cp ~/tmp/\1 &_' ~/tmp/my_file_list.txt
(コピー ... 貼り付け ... ひるむ)
上記の 2 行をコピー アンド ペーストせずに単純に行うにはどうすればよいでしょうか。
[編集] スペースを処理するには:
~/$ sed -r 's_.+_cp "&" ~/tmp/_' ~/tmp/my_file_list.txt
と
~/$ sed -r 's_.+/(.+)_cp "~/tmp/\1" "&"_' ~/tmp/my_file_list.txt