変数値の文字列置換

文字列置換は sed を使って処理していましたが、実は Shell でもっと単純に、簡単に処理できたんですね。

構文 処理 検索方向 一致箇所
${変数名#パターン} 文字列削除 前方一致 最短一致
${変数名##パターン} 最長一致
${変数名%パターン} 後方一致 最短一致
${変数名%%パターン} 最長一致
${変数名/置換前文字列/置換後文字列} 文字列置換   最初に一致した文字列
${変数名//置換前文字列/置換後文字列}   一致した全文字列

一連のファイル名を変更したい場合には、こんな風に使えます。

例) blue という文字列が含まれた一連のファイルのファイル名の blue を orange に変更

for file in `ls`;do mv $file ${file/blue/orange};done

参考

shとbashでの変数内の文字列置換など

コメントを残す

メールアドレスが公開されることはありません。