Roc*_*y86 12 shell rename files
我有目录说它/var/tmp/abc
有 4 个文件:
12345-ram-3e3r5-io9490-89adu9.csv
45434-dam-qwe35-to9490-43adu9.csv
11234-cam-yy3r5-ro9490-85adu9.csv
14423-sam-hh3r5-uo9490-869du9.csv
Run Code Online (Sandbox Code Playgroud)
我想以尽可能短的(可能是单行)方式重命名所有 CSV 文件(找到所有文件并重命名它们):
XXXXX-ram-3e3r5-io9490-89adu9.csv
XXXXX-dam-qwe35-to9490-43adu9.csv
XXXXX-cam-yy3r5-ro9490-85adu9.csv
XXXXX-sam-hh3r5-uo9490-869du9.csv
Run Code Online (Sandbox Code Playgroud)
SHa*_*den 15
rename -n 's/(\w+)/XXXXX/' *.csv
删除-n
快乐时。
Joh*_*024 11
尝试:
for f in *.csv; do mv -i -- "$f" "XXXXX-${f#*-}"; done
Run Code Online (Sandbox Code Playgroud)
这个怎么运作:
for f in *.csv; do
这将开始对所有*.csv
文件进行循环。
mv -i -- "$f" "XXXXX-${f#*-}"
这会根据需要重命名文件,在覆盖任何文件之前以交互方式询问。
done
这标志着循环的结束。
例子:
$ ls -1
11234-cam-yy3r5-ro9490-85adu9.csv
12345-ram-3e3r5-io9490-89adu9.csv
14423-sam-hh3r5-uo9490-869du9.csv
45434-dam-qwe35-to9490-43adu9.csv
$ for f in *.csv; do mv -i -- "$f" "XXXXX-${f#*-}"; done
$ ls -1
XXXXX-cam-yy3r5-ro9490-85adu9.csv
XXXXX-dam-qwe35-to9490-43adu9.csv
XXXXX-ram-3e3r5-io9490-89adu9.csv
XXXXX-sam-hh3r5-uo9490-869du9.csv
Run Code Online (Sandbox Code Playgroud)