【发布时间】:2011-11-23 22:23:32
【问题描述】:
我有一个文本文件,其中列出了我要移动的文件位置,首先到临时目录,在源目录中执行一些操作,然后将文件移回原始位置。
列表文件的格式是由查找命令生成的,例如:
~/$ 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
(复制...粘贴...畏缩)
如果没有复制和粘贴,我怎么能简单地完成上述两行...我在想 xargs 可能拥有我渴望的解决方案。
[编辑] 处理空格:
~/$ sed -r 's_.+_cp "&" ~/tmp/_' ~/tmp/my_file_list.txt
和
~/$ sed -r 's_.+/(.+)_cp "~/tmp/\1" "&"_' ~/tmp/my_file_list.txt
【问题讨论】:
-
文件名是否包含空格?
-
不,但你指出了一个普遍的案例缺陷......将编辑。