MENU

シェルスクリプトで括弧を取り除く: BashとFishシェルのワンライナー

例によってFishスクリプトの備忘録。これのあとにゼロ埋めすること多し。

はじめに:

カレントディレクトリに存在する (数字).jpg 形式のファイル名から括弧 () を取り除く方法について、BashシェルとFishシェルでの簡単なワンライナーを紹介します。

Bash シェル:

Bash シェルでは、次のワンライナーで、カレントディレクトリにある全ての (*).jpg ファイル名から括弧を取り除くことができます。

for file in *'('*')'*.jpg; do mv "$file" "${file//\(/}"; done
for file in *')'*.jpg; do mv "$file" "${file//\)/}"; done

これにより、例えば (123).jpg というファイル名が 123.jpg に変更されます。

Fish シェル:

Fish シェルでは、以下のワンライナーで同様の操作が可能です。

for file in *'('*')'*.jpg; set new_file (string replace -ra '[()]' '' $file); mv $file $new_file; end

この Fish シェルのワンライナーは、カレントディレクトリに存在する (数字).jpg 形式のファイル名から、左括弧 ( と右括弧 ) を両方正しく取り除きます。

まとめ:

ファイル名から特定の文字を取り除くことは、ファイルの整理や管理を助けます。Bash シェルと Fish シェルのどちらでも、簡単なワンライナーでこの操作を行うことができます。

目次