不积跬步无以至千里
1、说明
sed命令用于匹配和处理文件行内容
选项:
-i :对文件内容进行修改,sed默认输出结果不会改变文件内容
-n :只显示处理过的行,sed默认输出结果显示所有文本内容
(-f 后跟sed指令文件, -e 指定参数为sed指令,多点编辑时可以用到)
2、示例
示例-1:追加、插入
参数:
a :在指定行(后)添加内容「行级别」
i :在指定行(前)插入内容「行级别」
追加)
e.g.: 向指定行后第3行后追加 hello.shanghai
e.g.: 向匹配内容123后追加 hello,shanghai
e.g.: 向最后一行追加 hello,shanghai
e.g.: 向最后一行追加两行(多行)
插入)
e.g.: 向指定行第三行之前插入 hello,shanghai
e.g.: 向匹配内容123之前插入 hello,shanghai
e.g.: 向最后一行之前插入 hello,shanghai
e.g.: 向最后一行追加两行(多行)
示例-2:替换、修改
参数:
c :替换指定行的内容「行级别」
s :修改一指定行的内容「行内容级别」
替换)
e.g.: 将文件第三行替换为 hello,hangzhou
e.g.: 将匹配到内容123的行替换为 hello,hangzhou
e.g.: 将最后一行替换为 hello,hangzhou
e.g.: 将1至3行替换为 hello,hongkong
e.g.: 将奇数行替换为 hello,hongkong
修改)
基本公式:sed ’s/被取代字符串/新字符串/‘ 文件名
e.g.: 将行中内容123修改为 hello,hongkong,默认只修改行中第一次出现的匹配内容
e.g.: 将行中所有内容123修改为 hello,hongkong
e.g.: 将行中第2次出现的内容123修改为 hello,hongkong
e.g.: 将每行出现的内容123修改为 hello,hongkong,并将修改后的行保存到4.txt中。-n只显示处理的行
e.g.: 匹配行并操作,符号{.*}代表整行内容
e.g.: 匹配行开头。替换以#开头的行为——,「^#.*」代表#开头以后所有内容
e.g.: 匹配行结尾。替换每行行尾一个字符为A,一个「.」代表一个字符,$代表行尾。如..$最后两个字符
e.g.: 特殊案例。^[0-9]正则行首是数字,&匹配的内容
示例-3:打印
参数:
p :打印「行级别」,常和 -n 一起使用
e.g.:打印第三行
e.g.:隔行打印。~后是步长
e.g.:打印尾行
e.g.:打印2到5行、到尾行
e.g.:打印含有123的行
e.g.:打印从匹配123的行到第3行,也打印后面匹配123的行
e.g.:打印从第1行到匹配123的行,不包括第1行
e.g.:打印从匹配def的行到尾行
e.g.:打印从匹配行和其后一行
e.g.:打印从匹配行beijing到匹配行guangzhou
e.g.:打印从文件的行号
示例-4:删除
参数:
d :删除行「行级别」
e.g.:删除指定行
e.g.:删除指定行以外的行
e.g.:删除匹配行
e.g.:删除匹配行—或。删除匹配123的行或had行
e.g.:删除2到5行中匹配123的行
示例-5:读、写
参数:
r :
w :