21

これを変えたいだけです

cc211_AMBER_13062012i.II  cc211_GROMOS_13062012i.II
cc211_CHARM_13062012i.II  cc211_OPLS_13062012i.II

cc211_AMBER_15062012i.II  cc211_GROMOS_15062012i.II
cc211_CHARM_15062012i.II  cc211_OPLS_15062012i.II

私は試した、

find -name "*.13 *" | xargs rename ".13" ".15"

通常、3番目のアステリックスと2番目のアステリックスの間にスペースはありません。これは、私が見ることができるものからイタリック体になっているだけです。基本的に、アステリックスが機能しているように見えるファイル名の最後にある場合の対処方法については多くの答えがありますが、ここでは機能させることができません。

あなたが持っているものは何でも私の人生をずっと楽にしてくれるでしょう!

編集1:トライアル

-bash-4.1$ ls

cc211_AMBER_13062012.II  cc211_GROMOS_13062012.II
cc211_CHARM_13062012.II  cc211_OPLS_13062012.II

-bash-4.1$ rename 's/_13/_15/' cc*
-bash-4.1$ ls

cc211_AMBER_13062012.II  cc211_GROMOS_13062012.II
cc211_CHARM_13062012.II  cc211_OPLS_13062012.II 
4

5 に答える 5

30

これはどう:

for i in *.II; do mv $i $(echo $i | sed 's/_13/_15/g'); done

これは、拡張子がすべてのファイルで置き換え_13られます_15.II

sedの詳細については、こちらをご覧ください。

于 2012-06-15T15:26:19.357 に答える
21

純粋なbash解決策:

for i in cc*; do
  mv "$i" "${i/_13/_15}"
done
于 2012-06-15T15:44:39.743 に答える
8
rename 's/_13/_15/' cc*

あなたがやりたいことをする必要があります。正規表現は、 「cc」で始まるすべてのファイルでにs/_13/_15/置き換え_13られます。_15

$ ls
cc211_AMBER_13062012.II  cc211_GROMOS_13062012.II
cc211_CHARM_13062012.II  cc211_OPLS_13062012.II

$ rename 's/_13/_15/' cc*

$ ls
cc211_AMBER_15062012.II  cc211_GROMOS_15062012.II
cc211_CHARM_15062012.II  cc211_OPLS_15062012.II

これは、の新しいperlバージョンでのみ機能しrenameます。使用しているバージョンを確認するにはman rename。ページの上部に

Perlプログラマーリファレンスガイド

あなたはperlバージョンを持っています。それが言うなら:

Linuxプログラマーマニュアル

標準(古い)バージョンがあります。

古いバージョンの場合、コマンドは次のようになります。

rename _13 _15 cc*
于 2012-06-15T15:25:12.070 に答える
0

私は純粋なLinuxソリューションを使用しています:

### find all files that contains _DES in name and duplicate them adding _AUXLOCAL
for f in **/*_DES*; do
    cp "$f" "${f%.DES}_AUXLOCAL"
done 
###Rename all _AUXLOCAL files, removing _DES to _LOCAL
for f in **/*_AUXLOCAL*; do
  mv "$f" "${f/_DES/_LOCAL}"
done
###Rename all _AUXLOCAL files, removing _AUXLOCAL
for f in **/*_AUXLOCAL*; do
  mv "$f" "${f/_AUXLOCAL/}"
done

お役に立てば幸いです

于 2017-09-06T10:08:02.187 に答える
0

この場合、次のコマンドを使用できます。

rename -v "_130" "_150" *.II
于 2022-01-19T17:09:19.487 に答える