我有许多文件,其名称如下。我想用中间的5位数字重命名这些文件。例如,将N18CMS95WS.12446_950C_wet.txt
重命名为12446.txt
N18CMS95WS.12446_950C_wet.txt
N18CMS9WS.12507_900C_wet.txt
R418WS.15069_800C_wet_air.txt
N18CN85S.13375_850C_dry.txt
R4195S.13648_950C_dry.txt
我很累grep ".[[:digit:]]_" N18CMS95WS.12446_950C_wet.txt
来获取文件名中的12446
“,但是它不起作用。有人可以给我些帮助吗?
答案 0 :(得分:2)
如果您有rename
:
rename -v 's/.*\.([0-9]+)_.*/$1.txt/' *.txt
这是替代解决方案:
for file in *.txt; do
new="${file#*.}"
new="${new%%_*}"
mv -v "$file" "$new".txt
done