2

次の名前の単一のディレクトリに一連のファイルがあります。

OneThing-x.extension
OneThing-y.extension
OneThing-z.extension

これらをコピーするために使用するUNIXコマンド(find、cp、xargs、sed?)

AnotherThing-x.extension
AnotherThing-y.extension
AnotherThing-z.extension

x-> copy-> x、y->copy->yのように

私はファイルを選択する最初のコマンドのfind..部分を持っていますが、そこで立ち往生しています。

編集 明らかに、私はオリジナルとコピーの両方を保持したいので、名前を変更しても私にはうまくいきません。

4

5 に答える 5

3

どうですか:

$ touch a1.a a2.a a3.a
$ ls

a1.a  a2.a  a3.a

$ for a in a*.a ; do cp $a $(echo $a | sed 's/^a/b/') ; done
$ ls

a1.a  a2.a  a3.a  b1.a  b2.a  b3.a
于 2009-07-03T10:24:04.603 に答える
1

私の大まかな解決策は次のようになります。

for FIL in OneThing*; do NFIL=`echo $FIL|sed 's/OneThing/AnotherThing/'`; cp "$FIL" "$NFIL"; done;
于 2009-07-03T10:07:04.987 に答える
1

Jason Musgroveのソリューションの拡張:

for FIL in OneThing*
do
  NFIL=`echo $FIL | sed 's/OneThing/AnotherThing/'`
  cp "$FIL" "$NFIL"
done
于 2009-07-03T10:13:51.180 に答える
0
$ rename 's/OneThing/AnotherThing/' *.extension
于 2009-07-03T10:14:19.930 に答える
0

mmvを使用することもできます。

$ mmv -c "OneThing*" "AnotherThing#1"

また

$ mmv -c "OneThing-*.extension" "AnotherThing-#1.extension"
于 2009-07-03T10:38:30.743 に答える