1

我有文件:x0001_test.xml z0054_test.xml k5487_test.xml....

我想保存他们做类似的事情:cp *_test.xml ${BEGINNING}_test.xml.SAVE.

bash脚本中有没有办法存储*每个文件的内容以便之后重新注入?还是我应该使用循环?

4

2 回答 2

1

这样做的循环可能很简单,不需要单独的单行命令。您不需要保存文件名的一部分,因为您只是添加.SAVE整个内容中:

for fspec in *_test.xml; do
    cp "${fspec}" "${fspec}.SAVE"
done

而且,无论如何,如果您真的想要,您可以在一行中完成:

for fspec in *_test.xml; do cp "${fspec}" "${fspec}.SAVE" ; done
于 2012-10-30T09:09:12.167 回答
0

@paxdiablo 给了你最直接的答案。另外几个选择

printf "%s\0" *_test.xml | xargs -0 -L1 -I{}  cp {} {}.SAVE
find . -name \*_test.xml -exec  cp {} {}.SAVE \;

这假设您有 GNU xargs,并且 find 命令可能会在子目录中找到匹配的文件。

于 2012-10-30T14:43:29.540 回答