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

你也可以使用 mmv:

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

或者

$ mmv -c "OneThing-*.extension" "AnotherThing-#1.extension"
于 2009-07-03T10:38:30.743 回答
0
$ rename 's/OneThing/AnotherThing/' *.extension
于 2009-07-03T10:14:19.930 回答