228 文字
1 分
再帰置換するシェルスクリプト - ファイル名 と 中身
概要
再帰的処理を行い、置換をするプログラムを2つ作りました。
- ファイルの中身を変更
- ファイル名を変更
0. ワンライナーあった
find . -name "*.html" -type f -exec sed -i '' -e 's/TextToReplace/ReplacementText/' {} \;1. ファイルの中身を変更
https://matsu.teraren.com/static/replace_contents.sh
#!/bin/bash
#-----------------------------------------------# Replace SEARCH string with REPLACEMENT string for the contents.USAGE="Usage: % ./replace_contents.sh search replacement"## @author Yuki Matsukura# @version $Id:$#-----------------------------------------------
# String of partical matchFILEMATCH="*"
# String of partical matchSEARCH=$1
# String of replacementREPLACEMENT=$2
if [ $# -ne 2 ]; then echo "Insufficient parameter error" 1>&2 echo $USAGE 1>&2 exit 1fi
for i in `find . -type f -name "*$FILEMATCH*"`do # contents replacement TEMPFILE=`mktemp` sed "s/$SEARCH/$REPLACEMENT/g" $i > $TEMPFILE mv $TEMPFILE $i
done2. ファイル名を変更
https://matsu.teraren.com/static/replace_filename.sh
#!/bin/bash
#-----------------------------------------------# Replace SEARCH string with REPLACEMENT string for filename.USAGE="Usage: % ./replace_filename.sh search replacement"## @author Yuki Matsukura# @version $Id:$#-----------------------------------------------
# String of partical matchSEARCH=$1
# String of replacementREPLACEMENT=$2
if [ $# -ne 2 ]; then echo "Insufficient parameter error" 1>&2 echo $USAGE 1>&2 exit 1fi
for i in `find . -type f -name "*$SEARCH*"`do # file name replacement REPLACEMENT_FILE=`echo $i | sed "s/$SEARCH/$REPLACEMENT/g"` mv $i $REPLACEMENT_FILE
done 再帰置換するシェルスクリプト - ファイル名 と 中身
https://blog.teraren.com/posts/再帰置換するシェルスクリプト-ファイル名-と-中/