从文件名中删除Grep text并将文件重命名为Grep ed text?

从文件名中删除Grep text并将文件重命名为Grep ed text?,grep,Grep,我有许多文件的名称如下。我想用中间的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.tx

我有许多文件的名称如下。我想用中间的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\u 950C\u wet.txt
来获取文件名中的
12446
,但它不起作用。有人能给我一些帮助吗?

如果你有
重命名

rename -v 's/.*\.([0-9]+)_.*/$1.txt/' *.txt
以下是另一种解决方案:

for file in *.txt; do
  new="${file#*.}"
  new="${new%%_*}"
  mv -v "$file" "$new".txt
done

如果您有
重命名

rename -v 's/.*\.([0-9]+)_.*/$1.txt/' *.txt
以下是另一种解决方案:

for file in *.txt; do
  new="${file#*.}"
  new="${new%%_*}"
  mv -v "$file" "$new".txt
done