通配符介绍:
菜鸟教程:正则表达式
参数说明:
-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或--help 显示帮助。
-n或--quiet或--silent 仅显示script处理后的结果。
-V或--version 显示版本信息。
动作说明:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
my.txt
#name info
my name is Alice
this is my first scripts
192.168.1.1
192.168
#上面那行不是空行,是一行很多的空格
#-i修改文件内的数据,不加i只是将修改后的数据存入缓存并打印
sed -i 's/168/123/g' my.txt
#在每行开头加入空格:将^(每行开头)替换为空格
sed 's/^/ /g'
#在后一行后面添加一行内容:a 代表下一行
sed '/Alice/a test007' my.txt
#在前一行后面添加一行内容:i 代表上一行
sed '/Alice/i test007' my.txt
#匹配指定一行并打印:-n代表一行,p代表打印
sed '/192.168.1/p' my.txt
#匹配指定行号的内容:第十行
sed -n '10p' my.txt
#匹配1-3行用,
sed -n '1,3p' my.txt
#匹配1和3行用;
sed -n '1;3p' my.txt
#将空格替换成换行,\n代表换行,^$代表空行
sed 's/ /\n/g' my.txt
#删除空行
sed '/^$/d' mt.txt
#将空行替换成######
sed 's/^$/##########/g' my.txt
#将多个空格的一行删除
sed '^ /d' my.txt
#在指定行下一行加入空行
sed '/192/G' my.txt
#在指定行上一行加入空行
sed '/192/{x;p;x;}' my.txt
#在指定行的上下一行各加入一行空行
sed '/192/{x;p;x;G}' my.txt
#每一行后面加一行空行
sed G my.txt
#每一行后面加两行
sed 'G;G' my.txt
#每一行前面加一行
sed '{x;p;x;G}' my.txt
#每一行前面加两行
sed '{x;p;x;x;p;x;}' my.txt