Копирование последовательных файлов

У меня есть 12 файлов с именем dmp_000 , dmp_001 и т. Д., dmp_011 до dmp_011 . Я хотел бы скопировать их все в rdmp_000 , rdmp_001 и т. Д., Последовательно, чтобы нумерованные файлы совпадали. Должен быть простой способ сделать это, а не индивидуально?

5 Solutions collect form web for “Копирование последовательных файлов”

Я использовал эту команду для генерации некоторых выборочных данных

 % for i in `seq 0 11`;do touch dmp_$(printf "%03d" $i);done % ls dmp_000 dmp_001 dmp_002 dmp_003 dmp_004 dmp_005 dmp_006 dmp_007 dmp_008 dmp_009 dmp_010 dmp_011 

Чтобы дублировать файлы и сохранять исходные файлы, вы можете изменить / создать даты:

 % for i in dmp*;do cp -p "$i" "r${i}";done % ls dmp_000 dmp_002 dmp_004 dmp_006 dmp_008 dmp_010 rdmp_000 rdmp_002 rdmp_004 rdmp_006 rdmp_008 rdmp_010 dmp_001 dmp_003 dmp_005 dmp_007 dmp_009 dmp_011 rdmp_001 rdmp_003 rdmp_005 rdmp_007 rdmp_009 rdmp_011 

Чтобы переместить файлы wdmp * в rdmp *

 % for i in wdmp*;do newname=$(echo $i|sed 's/^w/r/'); mv "$i" "$newname";done 

ПРИМЕЧАНИЕ . Вы также могли использовать ответ @ warl0ck для этого, используя команду rename .

Если использование zsh допустимо, то:

 autoload -U zmv # load zmv zmv -C 'dmp_(*)' 'rdmp_$1' # rename files 

Или просто в этом случае:

 zmv -C 'dmp_*' 'r$f' 

( $1 , $2 расширяются до соответствующих (...) групп и $f ко всему пути к файлу).

См. Эту ссылку для получения дополнительных примеров.

Совместимые с Posix, короткие и все ваши файлы могут ссылаться (в пределах parens) как позиционные параметры 1-12, если вы хотите расширить их.

 % ( set -- wdmp0[0-1][0-9] ;\ > for f ; do cp $fr${f#?} ; done ) 

Я бы сделал это

 for f in dmp_{000..011}; do [ -f $f ] && cp "$f" "r$f"; done 

Попробуйте переименовать команду и переименуйте только те, которые были запущены с помощью dmp_ ,

rename dmp rdmp dmp_*

Чтобы сохранить файлы, попробуйте альтернативный метод, подобный этому,

for x in dmp_*; do cp $xr$x; done

  • Справка Сценарий оболочки для передачи переменных в rsync
  • хранить и выполнять команду redirection / piped в скрипте
  • Переменные среды не устанавливаются, когда моя функция вызывается в конвейере
  • Как включить переменную в документ здесь?
  • Как эхо-строку с несколькими пробелами в bash «нетронутой»?
  • Команда не найдена при запуске с sudo bash
  • Как перейти от дочерних каталогов к корню?
  • Shell Script - оптимизация Awk
  • Подстановка команд против перенаправления ввода-вывода?
  • Помощь при манипулировании строками в оболочке
  • Как добавить две переменные, переданные в оболочке, которая возвращает число целых чисел?
  • Передача переменной временной метки из оболочки в gawk
  • Linux и Unix - лучшая ОС в мире.