grep -ie' p[^, ]* *,[^,]*$' \
<<""
AABBA, 10050, Tom marc Peter , POR
BBBAC, 10051, Eva braun, AUS
CCAHA, 10052, Jon murry , UDD
GGHAN, 10053, Taler yon, AGG
IIUSA, 10054, Raff paleen , EUS
UUGAS, 10055, Bara enty, ESP
AABBA, 10050, Tom marc Peter , POR
IIUSA, 10054, Raff paleen , EUS
Это будет работать, если мы предположим, что все до первого подчеркивания является префиксом.
for f in *.png; do
new=$(echo "$f" | sed -r 's/^([^_]*)_(.*)\.(.*)$/\2_\1.\3/');
echo "Renaming: $f => $new";
#mv $f $new
done
Удалите #
перед mv
, если результат вас устраивает.
С prename
было бы немного проще:
prename -n 's/^([^_]*)_(.*)\.(.*)$/$2_$1.$3/'
Если префиксом всегда является t_
, измените его на этот шаблон:
for f in t_*.png; do
new=$(echo "$f" | sed -r 's/^t_(.*)\.(.*)$/\1_t.\2/');
echo "Renaming: $f => $new";
#mv $f $new
done
Учитывая шаблон имени файла t_00xx_000xxx.png
, где x может быть любым одиночным символом, следующий цикл использует ?
подстановочный символ вместо переменных символов. Цикл выбирает только файлы, начинающиеся с t_
и заканчивающиеся на .png
. Он использует расширение параметра, чтобы удалить начальный t_
, затем извлекает нужную подстроку, чтобы переместить _t
в желаемую позицию.
for f in t_00??_000???.png
do
echo mv -- "$f" "${f:2:11}_t.png"
done
Для некоторых придуманных -имен файлов пример вывода будет:
mv t_0011_000111.png 0011_000111_t.png
mv t_0012_000345.png 0012_000345_t.png
mv t_00xx_000xxx.png 00xx_000xxx_t.png
Удалите часть echo
, если результаты выглядят правильно.
В синтаксисе sh
:
for f in t_*.*; do
dest=${f#t_}
dest=${dest%.*}_t.${dest##*.}
echo mv -i -- "$f" "$dest"
done
Если SuSE SLES12 имеет команду mcp/mmv в своем репозитории, тогда будет просто использоватьmmv
:
mmv 't_*.png' '#1_t.png'
Или, если проблема заключалась в количестве символов и конкретных цифр, вы могли бы уточнить, например:
mmv 't_00??_000???.png' '00#1#2_000#3#4#5_t.png'
Первым аргументом для mmv является источник со стандартными подстановочными знаками *
и ?
. Второй аргумент — это пункт назначения, в котором#1 заменяется содержимым, которому соответствует первый подстановочный знак,#2 — содержимым, которому соответствует второй подстановочный знак и т. д.
Пример:
% ls -1
t_0011_000037.png
t_0011_000038.png
t_0011_000039.png
t_0022_000001.png
t_0022_000002.png
% mmv 't_*.png' '#1_t.png'
% ls -1
0011_000037_t.png
0011_000038_t.png
0011_000039_t.png
0022_000001_t.png
0022_000002_t.png