介绍
字符串的替换操作是平时比较常用的操作, 将平时在Linux系统下开发使用到的字符串替换整理下来。
字符串替换
平时使用的字符串的替换主要有3种
- vim编辑器
- 变量的替换
- linux命令批量替换
接下来逐个来介绍并给出示例。
vim编辑器
应用场景: 利用vim作为开发工具, 对平时开发的代码或者小文件, 完成字符串的替换。
示例:
# 情景: vim打开文件
# 全文替换字符串org替换为new
: %s/org/new/g
# 指定行之间替换 start, end为数字
:start, end s/org/new/g
# 指定行到文件末尾的替换
:start, $ s/org/new/g
变量的字符串替换
应用场景:shell脚本用到的变量的字符串替换
示例:
# shell脚本
# 初始变量
item="org.apache.commons"
# 字符串替换: 变量中首个字符串替换
# (1) ${param/org/new}: 变量param中首个org替换为new
# 特殊字符: '.' 用 '\.'替换
# dir_name="org/apache.commons"
dir_name_1=${item/\./\/}
# 字符串替换:变量中全部字符串替换
# (2) ${param//org/new}:变量param中org全部替换为new
# dir_name="org/apache/commons"
dir_name_2=${item//\./\/}
linux命令批量替换
应用场景: 不打开文件完成文件中字符串的替换, 或批量文件的字符串替换。
示例:
# linux命令行
# 利用sed命令完成单个文件字符串替换
$ sed -i "s/org/new/g" file_name
# 利用sed命令和其他linux命令, 完成批量文件字符串替换
# 目录下的.sh后缀的文件字符串替换
$ find ./ -name "*.sh" | xargs sed -i "s/org/new/g"
参考
Linux: sed命令, 具体man sed可查看