有关我应如何处理此事的任何建议吗? 我需要移动目录中的所有文件并更改其名称,删除所有内容,包括第一个'_',例如:
之前的例子:
data directory
DT21_Filename1
D22_Filename2
D33_Filename3
export_data目录 示例后:
Filename1
Filename2
Filename3
答案 0 :(得分:1)
首先使用以下命令重命名所有文件:
rename 's/([^_]*_)//' *
然后将它们移动到目录:
mv * PATH_TO_NEW_DIRECTORY
您也可以为上面写一个脚本。
脚本:
curr_dir=$PWD
cd $1
for i in *; do
rename 's/([^_]*_)//' $i
done;
mv * "$curr_dir/$2"
用法:
bash filename.sh path_to_old_directory relative_path_to_new_directory_from current
这会将文件从old_direct重命名并移动到new_directory。
如果要为新目录提供绝对路径:
cd $1
for i in *; do
rename 's/([^_]*_)//' $i
done;
mv * $2
答案 1 :(得分:1)
cd SOURCE_DIR
for file in *; do
newname=`echo $file | sed 's/[^_]*_//'`
mv $file DESTINATION_DIR/$newname
done