一.替换
命令格式1:sed 's/原字符串/新字符串/' 文件
命令格式2:sed 's/原字符串/新字符串/g' 文件
1.这两种命令格式的区别在于是否有个“g”。没有“g”表示只替换第一个匹配到的字符串(每行都会替换只是只替换第一个匹配到的字符串)。
2.有“g”表示替换所有能匹配到的字符串,“g”可以认为是“global”(全局的)的缩写,没有“全局的”结尾就不要替换全部,这样就好记啦。命令可以使用正则表达式来处理。
二、替换某行内容
命令格式1:sed '行号c 新字符串' 文件
命令格式2:sed '起始行号,终止行号c 新字符串' 文件
第一个命令表示用新的字符串替换指定这一行的内容, 第二个命令表示用新字符串替换指定几行的内容。
三、多条件替换
命令格式:sed -e 命令1 -e 命令2 -e 命令3
有些时候有多个替换条件,那就可以使用“-e”参数将这些替换条件连接起来,一次性完成所有的替换操作。例如,可以将上述的两种命令连接起来:“sed -e 's/原字符串/新字符串/' '行号c 新字符串' 文件”。
四.保存替换结果到文件中
命令格式:sed -i 命令
sed命令只会将替换、修改结果打印到屏幕上,原文件并没有改变什么。如果想保存结果到文件中(不打印),就需要加上“-i”参数。
五.删除行
如果是要删除第三行:
sed -i '3d' 1.txt
如果是要删除 1~3行:
sed -i '1,3d' 1.txt
如果删除以Love开头的行
sed -i '/^Love/d' 1.txt
删除包含Love的行
sed -i '/Love/d' 1.txt
六.添加行
a\ 在指定的行后面追加一行
i\ 在指定的行前面追加一行
### 使用指定的行号追加内容,在使用行号的过程中,需要注意的问题有以下
### N;后面只能使用偶数,且不可以为0(N 就是N不是参数)
### a表示在指定的行后面追加一行
### i表示在当前行插入一行,如果指定行为4,其实最终的结果插入行的位置是第三行。
sed -i 'N;2a\newline' 1.txt
sed -i 'N;2i\newline' 1.txt