shell sed 的一些用法
#1、替换 #将1.txt文件中的2017替换成2016显示在屏幕上 sed"s/2017/2016/g"1.txt #将1.txt文件中的2017替换成2016显示在屏幕上对文件彻底修改,加 i 修改进文件 sed-i"s/2017/2016/g"1.txt #Sed读取系统变量,变量替换 DATE="2016" sed"s/2017/$DATE/g"1.txt #关闭SELinux,修改SELinux策略enforcing为disabled,查找SELINUX行,然后将其行enforcing值改成disabled、!s表示不包括SELINUX行: sed-i"/SELINUX/s/enforcing/disabled/g"/etc/selinux/config sed-i"/SELINUX/!s/enforcing/disabled/g"/etc/selinux/config #2、打印 #打印1.txt文本第一行至第三行 sed-n"1,3p"1.txt #3打印1.txt文本中第一行与最后一行 sed-n"1p,$p"1.txt #3、删除 #删除第一行至第三行 sed'1,3d'1.txt #删除匹配行至最后一行 sed'/2017/,$d'1.txt #删除最后一行 sed'$d'1.txt #删除最后6行(做6次删除最后一行) foriin{1..6};dosed-i'$d'1.txt;done #删除1.txt行前和行尾的任意空格: sed's/^[t]*//;s/[t]*$//'1.txt #删除所有空格 sed's/[t]//g'1.txt #4、添加字符 #在1.txt查找you所在行,并在其下一行添加me字符,a表示在其下一行添加字符串: sed'/you/ame'1.txt #在1.txt查找you所在行,并在其上一行添加me字符,i表示在其上一行添加字符串: sed'/you/ime'1.txt #在1.txt查找以you结尾的行尾添加字符串me,$表示结尾标识,&在Sed中表示添加: sed's/you$/&me/g'1.txt #在1.txt查找you的行,在其行首添加字符串me,^表示起始标识,&在Sed中表示添加: sed'/you/s/^/&me/'1.txt #5、多个sed命令组合 #使用-e参数 sed-e'/www.jd.com/s/^/&1./'-e's/www.jd.com$/&./g'1.txt #使用分号";"分割 sed-e'/www.jd.com/s/^/&1./;s/www.jd.com$/&./g'1.txt #6、插入空行 #每一行后边插入一行空行 sed'/^$/d;G'1.txt sed'G'1.txt #每一行后边插入两行空行 sed'/^$/d;G;G'1.txt sed'G;G'1.txt #前三行每行后插入空行 sed'/^$/d;1,3G;'1.txt #第三行后插入空行 sed'/^$/d;3G;'1.txt #第三行后插入3行空行 sed'/^$/d;3{G;G;G}'1.txt #匹配行后插入空行 sed'/2017/G'1.txt #在匹配行前一行插入空行 sed'/2017/{x;p;x;}'1.txt #同时在匹配前后插入空行 sed'/2017/{x;p;x;G;}'1.txt #7、在1.txt每行前加入顺序数字序号、加上制表符t及.符号: sed=1.txt|sed'N;s/n//' sed=1.txt|sed'N;s/n/t/' sed=1.txt|sed'N;s/n/./' #8、打印及删除1.txt最后两行: sed'$!N;$!D'1.txt sed'N;$!P;$!D;$d'1.txt #9、合并上下两行,也即两行合并: sed'$!N;s/n//'1.txt sed'N;s/n//'1.txt (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |