使用`cp`,如何在目标源中使用正则表达式匹配

时间:2013-12-30 13:45:12

标签: regex unix cp

我有一个目录,其中包含以此命名的文件。

basic.js
basic.json
basic.html
basic.text
basic_contents.json

我想在一个命令中复制所有这些文件到

diff_name.js
diff_name.json
diff_name.html
diff_name.text
diff_name_contents.json

我想做cp basic(.*)$ diff_name$1之类的事情,但这不起作用。有没有办法在一个命令中执行此操作,最好使用cp?我厌倦了手动手动输入每一行。

谢谢!

3 个答案:

答案 0 :(得分:0)

不确定它是否可能以你的意思(使用通配符和替换),但我会这样做:

$> for file in `ls`; do cp "${file}" "not_${file}"; done

答案 1 :(得分:0)

使用这个简单的脚本

#!/bin/bash/
for file in  basic*
do
   cp $file diff_name${file}
done

答案 2 :(得分:0)

#for every file matching pattern
for f in basic_*
do
     #rename file, replacing first occurrence match for "basic"
     echo cp -v $f ${f/basic/diff_name}
done

更多关于bash string manipulation