昨天发布了Linux运维三剑客一awk,今天继续三剑客二sed,前者更多使用在对数据统计处理等场景,后者更多使用在运维攻城狮对集群配置变更等场景,掌握了这2个命令可以初步认定你是一个合格的运维攻城狮,更重要的是在以后跳槽涨薪时会助你一臂之力。
下面开始干货介绍:
1、sed命令基本语法:sed [-hnV][-e
参数介绍:
-e
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
2、详细示例解读,以下都是最基础的命令,不过可以和其他命令等组合使用使得功能更强大
a、在第2行后面添加一行:sed -e 2a\HXM sedtest.txt
b、删除行:sed -e ‘2,5d’ sedtest.txt(删除2~5行);sed -e ‘2d’ sedtest.txt(删除第二行)
c、在第2行前面新增一行:sed -e ‘2i HXMtest’ sedtest.txt
d、将2~5行替换为HXMtest:sed -e ‘2,5c HXMtest’ sedtest.txt
e、打印5~7行:sed -n ‘5,7p’
f、查找关键字行并打印:sed -n ‘/HXM/p’ sedtest.txt
g、删除包含关键字第行:sed ‘/HXM/d’ sedtest.txt
h、查找关键字,并修改对应行其他关键字:sed -n ‘/HXM/{s/123/456/;p;q}’ sedtest.txt
i、全文修改匹配关键字为新值:sed ‘s/oldword/newword/g’ sedtest.txt
j、多点操作:sed -e ‘3,$d’ -e ‘s/456/234/’