sed 命令

#########################################

 

字符串替换:

 

命令格式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

 

 

 

 

 

 

 

#################################

posted @ 2018-05-19 20:20  igoodful  阅读(132)  评论(1编辑  收藏  举报