Я разобрался. Для всех, кто хочет добиться того же, я установил сочетание клавиш в «Настройки клавиатуры» в разделе «Переключиться на ранее выбранное рабочее пространство».
Предположим, у вас есть переменная t1
, которая содержит набор значений, разделенных запятыми:
t1=$(GetValueOfT1) # For example t1='123,456,789'
Вы можете применить каждое из них по очереди с помощью такого цикла
OIFS="$IFS" IFS=,
for v in $t1
do
echo "Processing with v=$v:" >&2
mv "$SRC_PATH/ABC_${v}.dat" "$DEST_PATH/ABC_${v}_$$.dat"
done
IFS="$OIFS"
Первый $ t1
нельзя заключать в кавычки, потому что оболочка должна разделять значение по символам запятой. (Это контролируется переменной оболочки $ IFS
, которую мы сохраняем, чтобы мы могли восстановить ее в конце цикла.) Все остальные переменные должны быть заключены в кавычки, чтобы защитить их от неожиданного разделения слов на пробелы. , запятые и т. д. Наконец, вы должны представить $ v
как $ {v}
, потому что в противном случае оболочка будет включать следующий за ним символ _
как часть имя переменной, а $ v_
- это не то, что нам нужно.
Я бы порекомендовал вам префикс mv
с помощью echo
(т.е. echo mv ...
), прежде чем запускать это на практике, чтобы вы могли проверить вывод, прежде чем он что-либо изменит.
Существуют команды для такого массового переименования.
Лично я использую mmv
:
mmv <SRC_PATH>/"ABC_*.dat" <DEST_PATH>/"ABC_#1_$$.dat"