shell 批量替换文本中的字符串

一 需求

    批量修改文件中的字符,或者用于其他文字替换


二 实现

➜  shell git:(leisheng/change_status) ✗ cat test.txt
ss
ss
ss
ss
ss
➜  shell git:(leisheng/change_status) ✗ sed "s/ss/gg/g" test.txt
gg
gg
gg
gg
gg


三 脚本

➜  shell git:(leisheng/change_status) ✗ cat replace.sh
#!/bin/sh

# Use help
if [ "$1" == "--help" ];then
	echo "#"
	echo "# 使用: sh replace.sh 替换文字 目标文字 文件名"
	echo "#"
	exit 1
fi



# Parameter
BEFORE=$1
AFTER=$2
FILENAME=$3


# Replace Text
sed "s/${BEFORE}/${AFTER}/g"  ${FILENAME} > ${FILENAME}.tmp


# Replace File
cat ${FILENAME}.tmp > ${FILENAME}
rm ${FILENAME}.tmp



你可能感兴趣的:(shell,sed)