Grep текст из имени файла и переименовать файл grep-ed текст? - PullRequest
0 голосов
/ 04 июня 2019

У меня есть много файлов с именем, как показано ниже. Я хочу переименовать эти файлы с 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 "в имени файла, но оно не работает. Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 05 июня 2019

Если у вас есть rename:

rename -v 's/.*\.([0-9]+)_.*/$1.txt/' *.txt

Вот альтернативное решение:

for file in *.txt; do
  new="${file#*.}"
  new="${new%%_*}"
  mv -v "$file" "$new".txt
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...