LoginSignup
0
1

More than 1 year has passed since last update.

特定の文字列をファイル名から削除してリネームしたい

Posted at

背景

adobe xdよりpngでweb指定で画像を書き出した際に hogehoge@2x.pngとなってしまうので@2xを削除してhogehoge.pngとしたい

今回作成したシェルスクリプト

#!/bin/bash
for before_name in `find ./ -type f -name '*@2x*'` ; do
    after_name=`echo ${before_name} | sed -E 's/@2x//g'`
    mv -i "${before_name}" "${after_name}"
done

シェルスクリプトの内容

!/bin/bash

シェルスクリプトでbashを使う際のおまじない

ループ式

for before_name in `find ./ -type f -name '*@2x*'`; 
do
  # ループで処理したい内容
done

in以降の処理

find ./ -type f -name '*@2x*'

で該当するファイル名がbefore_nameに格納される
ループは上記の処理で該当するファイル数だけ実行される

ループの中身

    after_name=`echo ${before_name} | sed -E 's/@2x//g'`
    mv -i "${before_name}" "${after_name}"

echoで先ほどのループ式で該当したファイル名を出力し、sedコマンドによって特定の文字を空文字に置換している

その後、置換した文字列を新しいファイル名としてmvコマンドによって書き換えを行う

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1