Скопируйте файлы, затем переименуйте в соответствии с предыдущим местоположением в новую папку (пакет) - PullRequest
0 голосов
/ 08 октября 2011

У меня довольно простая проблема, но я не смог ее решить.Я решил обратиться за помощью.У меня не очень хорошие сценарии, и я надеялся, что найду самаритянина на этом сайте.У меня есть файлы в следующем формате:

/test1/da/0/1/nnn.dat
/test1/da/0/2/nnn.dat
/test1/da/0/3/nnn.dat
…
/test1/da/y/n/nnn.dat
/test1/da/y+1/n+1/nnn.dat
/test1/da/y+1/n+2/nnn.dat
…
/test1/da/y+n/n+n/nnn.dat

Я хочу скопировать все файлы nnn.dat, которые находятся в каждой подпапке, в /newfolder/nnn.dat таким образом, чтобы каждый файл nnn.dat получалнапример, переименовано в соответствии с его местоположением:

/newfolder/0_1_nnn.dat
/newfolder/0_2_nnn.dat
/newfolder/0_3_nnn.dat
…
/newfolder/y_n_nnn.dat

Кроме того, я хочу заменить определенный номер строки файла nnn.dat определенным набором символов.

Пожалуйста, ПОМОГИТЕ!

1 Ответ

0 голосов
/ 13 апреля 2012
for f in /test/da/*/*/*.dat; do
  yn="${f##/test/da/}"
  b="${yn##*/}"
  yn="${y%/*}"
  y="${yn%%/*}"
  n="${yn##*/}
  cp "$f" "/newfolder/${y}_${n}_${b}"
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...