我有這樣的名字有些文件的文件名:批量重命名目錄中的
01_dpm_gsi_182.sl5
02_dpm_devel_gsi_182.sl5
03_DPM_DSI_181.sl5
04_globus_httpd_122.sl5
05_globus_httpd_client_cgi_132.sl5
如何重命名這些文件,讓我得到這樣一些事情:
01_dpmgsi_s2011e01.sl5
02_dpmdevelgsi_s2011e02.sl5
....
....
的最近我建議像這樣:
#!/usr/bin/perl -n
if (/^([^_]+)_(.+)_([^.]+)([.].+)$/) {
my $s = $&;
my $x = $1;
my $y = $2;
my $z = 2011;
my $e = $4;
$y =~ s/_//g;
print "mv $s ${x}_${y}_s${z}e$x$e\n"
}
,然後用它是這樣的:
# ls | perl -n reName.pl > output
# bash ./output
有沒有更好的方法或單行來做到這一點,可能使用sed/awk?乾杯!!
+1不需要使用bash腳本 – Toto
簡單易懂! +1 –