sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #75034
Re: rename/copy
Anders Bo Rasmussen wrote:
> Findes der en rename-lignende kommando, der gør det samme som rename,
> man laver en kopi i stedet.
>
> Så hvis man har filerne: a.test b.test c.test
> og kører: rename test tst *.test
> Så bliver der reelt kørt:
>
> cp a.test a.tst
> cp b.test b.tst
> cp c.test c.tst
Det er en glimrende bash-one-liner.
Vi har som eksempel 1.a, 2.a og 3.a.
Først en løkke der har fat i alle *.a filer:
$ for x in *.a; do echo $x; done;
1.a
2.a
3.a
dernæst vises navnene uden extension:
$ for x in *.a; do echo ${x%.a}; done
1
2
3
så sætter vi den nye endelse på:
$ for x in *.a; do echo ${x%.a}.b; done
1.b
2.b
3.b
og så kan vi køre en hvilken som helst kommando vi ønsker:
$ for x in *.a; do echo cp -v $x ${x%.a}.b; done
cp -v 1.a 1.b
cp -v 2.a 2.b
cp -v 3.a 3.b
Fjern "echo" fra sidste linie når du er sikker på at de rigtige kommandoer
bliver udført. (det smarte ved denne linie er at du kan gå fra backup til
rename bare ved at udskifte "cp" med "mv")
--
Mvh
Christian Iversen
Follow ups
References