名为30_ex_ro_ahs_cpa_emp_fpp_b1751_20190328.csv的文件需要命名为prd_b1751_03282019.csv。通过sed起作用,但不是通过find / exec / sed命令起作用
这是cmd行中使用sed进行测试的工作示例。
cmd> sed -r 's/30_ex_ro_ahs_cpa_emp_fpp_b1751_(....)(..)(..)\.csv/prd_b1751_\2\3\1.csv/g'
30_ex_ro_ahs_cpa_emp_fpp_b1751_20190328.csv
prd_b1751_03282019.csv
这是使用find,exec,mv进行重命名的无效示例:
find . -name "30_ex_ro_ahs_cpa_emp_fpp_b1751_*.csv" -exec \
sh -c 'mv "$0" "`echo \"$0\" | \
sed -r 's/30_ex_ro_ahs_cpa_emp_fpp_b1751_(....)(..)(..)\.csv/prd_b1751_\2\3\1.csv/g'`"' {} \;
我希望文件被重命名,但是我得到了
-ksh: syntax error: `(' unexpected