#########################################
字符串替换:
命令格式1: shell>> sed 's/原字符串/新字符串/' 文件 命令格式2: shell>> sed 's/原字符串/新字符串/g' 文件 这两种命令格式的区别在于是否有个“g”。 没有“g”表示只替换第一个匹配到的字符串, 有“g”表示替换所有能匹配到的字符串,“g”可以认为是“global”(全局的)的缩写,没有“全局的”结尾就不要替换全部,
# 将原文件文件my.txt中的字符串apple或google或airbnb均替换为igoodful。 “或”运算符需要转义 -i 表示直接修改原文件 s 表示字符串替换 shell>> sed -i 's/apple\|google\|airbnb/igoodful/g' my.txt
真实案例:有时候需要将mysql的的多张相同结构的表的数据先用mysqldump导出到一个文件dump.txt,然后需要合并一张表导入到服务器上,这时候就需要将导出来的文件dump.txt里面的insert语句中的表名称都统一改成某个表名,这时候用这个命令,一次搞定,还算不错的。不过这个时候有自增主键,则需要注意,解决也简单
打印匹配行:
# 打印 5,20行之间的内容: shell>> sed -n '5,20p' my.txt # 打印包含字符串apple的行: shell>> sed -n '/apple/p' my.txt # 打印包含字符串apple或google的行: shell>> sed -n '/apple\|google/p' my.txt
#################################