GNU/Linux >> Linux の 問題 >  >> Linux

mv のような Linux コマンドはありますが、正規表現はありますか?

他の人が言及したように、 rename はこれが得意ですが、man ページを読んでください (man rename ) 試す前に。 rename と呼ばれるまったく異なるツールが少なくとも 2 つあります。 どちらを持っているかは、ディストリビューションによって異なります。呼び方を間違えると危険です。

これは、Ubuntu に同梱されている Larry Wall による perl ベースのバージョンの man ページです。 rename 's/\.sql$/.php/' *.sql のような perl 式を指定します

これは、古い Red Hat および CentOS ディストリビューションに同梱されている名前変更のマニュアル ページです。使い方は rename .sql .php *.sql のような単純な文字列置換

また、bash ワンライナーを使用して、各ファイルを一度に 1 つずつ処理することもできます。

$ for f in *.sql; do mv -i "$f" "${f%%.*}.php"; done

rename(1) です 、正規表現を使用しませんが、問題を解決できます:

rename .sql .php *.sql

mmv(1) もあります 、しかし、それがどのように機能するのかよくわかりません.


こんにちは、

あなたも入力してみてください

for i in $(\ls -d *.sql)
do
mv $i $(echo $i | sed -e 's/\.sql$/\.php/')
done

または、正規表現を使用するには、わずかに

に変更します
for i in $(\ls -d | egrep -e '.*\.sql')
do
mv $i $(echo $i | sed -e 's/\.sql$/\.php/')
done

シェルコーディングのちょっとした楽しみのために。 (-:


Linux
  1. 例を含むLinuxTeeコマンド

  2. 例を含むLinuxヘッドコマンド

  3. Linuxの名前変更コマンド

  1. Linuxでファイルの名前を変更する方法

  2. Linuxの初心者向けコマンドチュートリアルの名前変更(例付き)

  3. LinuxでのJQコマンドと例

  1. 例を含むwcLinuxコマンド

  2. -i オプションを指定した sed コマンドは Mac では失敗するが、Linux では機能する

  3. Linuxで正規表現を使用してファイルの名前を変更する