以下のファイルがあります:
boxScoreBaseball.html.php
boxScoreBasketball.html.php
boxScoreBowling.html.php
boxScoreCheer.html.php
boxScoreCrew.html.php
boxScoreCrossCountry.html.php
boxScoreEquestrian.html.php
boxScoreFieldHockey.html.php
boxScoreFootball.html.php
boxScoreGolf.html.php
boxScoreGymnastics.html.php
boxScoreHockey.html.php
boxScoreLacrosse.html.php
boxScoreRugby.html.php
boxScoreSkiing.html.php
boxScoreSoccer.html.php
boxScoreSoftball.html.php
boxScoreSwimming.html.php
boxScoreTennis.html.php
boxScoreTrack.html.php
boxScoreVolleyball.html.php
boxScoreWaterPolo.html.php
boxScoreWrestling.html.php
各ファイルから の部分を削除したいのでboxScore
、たとえば はboxScoreBaseball.html.php
になりますbaseball.html.php
。これを行う最も簡単な方法は何ですか?
答え1
おそらく Bash でのみ動作します:
for i in boxScore*; do mv $i ${i#boxScore}; done
私はいつも、手っ取り早く bash を操作するためにこのリファレンスを使用します:http://aurelio.net/shell/canivete/en/(セクション4を参照)。
答え2
答え3
すべてを直接名前変更することはできません。bash スクリプトを使用する必要があります。次のリンクが役に立つかもしれません:
答え4
次の小さなシェル スクリプトを実行します。
for file in *; do echo "${file:8}" | sed -e 's/^\([A-Z]\)\(.*\)/\l\1\2/' | xargs mv "$file"; done
現在のディレクトリ内のすべてのファイルを反復処理します。まず、最初の 8 文字を除いたファイル名をエコーします。次に、を使用してsed
最初の文字を小文字に変換します。sed
検索式は「行の先頭、グループ 1: 大文字、グループ 2: 残り」を意味し、置換式は「グループ 1 に一致する小文字、次にグループ 2 を追加する」ことを意味します。最後の部分は、古いファイルを変換されたファイル名に移動するだけです。