У меня есть файлы с версией, которые выходят из конвейера сборки.
foo-1.3.4.war
и мне нужно переместить эти файлы, чтобы они имели имя
foo-dev-1.3.4.war
Как мне это сделать?
Я думал что-то вроде mv foo-*.war foo-dev-*.war
но это создаст только файлы с *.
Любые идеи?
Это сработало для меня - также можно было сделать с помощью find вместо ls:
#touch foo-1.3.{1..10}.war
#ls -1
foo-1.3.10.war
foo-1.3.1.war
foo-1.3.2.war
foo-1.3.3.war
foo-1.3.4.war
foo-1.3.5.war
foo-1.3.6.war
foo-1.3.7.war
foo-1.3.8.war
foo-1.3.9.war
#for fil in $(ls -1); do
filNew=$(echo $fil | sed 's/foo/foo-dev/g');
mv $fil $filNew;
done
#ls -1
foo-dev-1.3.10.war
foo-dev-1.3.1.war
foo-dev-1.3.2.war
foo-dev-1.3.3.war
foo-dev-1.3.4.war
foo-dev-1.3.5.war
foo-dev-1.3.6.war
foo-dev-1.3.7.war
foo-dev-1.3.8.war
foo-dev-1.3.9.war
По умолчанию в большинстве распространенных дистрибутивов используются только bash и команды:
find . -name "foo-*.war" -exec sh -c 'mv "$1" "other_folder/foo-dev-${1#foo-}"' _ {} \;
Вы можете использовать Perl-реализацию rename
программа (есть еще одна программа, rename
который является частью util-linux
package) вот так:
$ touch foo-1.3.{1..10}.war
$ ls -l
total 0
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-1.3.1.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-1.3.10.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-1.3.2.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-1.3.3.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-1.3.4.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-1.3.5.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-1.3.6.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-1.3.7.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-1.3.8.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-1.3.9.war
$ rename 's,^foo,foo-dev,' *
$ ls -l
total 0
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-dev--1.3.1.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-dev--1.3.10.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-dev--1.3.2.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-dev--1.3.3.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-dev--1.3.4.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-dev--1.3.5.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-dev--1.3.6.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-dev--1.3.7.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-dev--1.3.8.war
-rw-r--r-- 1 ja users 0 Sep 9 19:14 foo-dev--1.3.9.war