sed

sed
功能说明:sed是操作、过滤和转换文本内容的强大工具。常用功能包括对文件实现快速增删改查(增加、删除、修改、查询),其中查询的功能中最差用的两大功能是过滤指定字符串、取出指定行。
 
参数选项:
-n  取消默认的sed的输出,常与sed内置命令的p连用。
-i  直接修改文件内容,而不是输出到终端。如果不适用 -i 选项,则sed只是修改内存中的数据,并不会影响磁盘上的文件。
 
sed的内置命令字符
a    全拼append,表示追加文本,在指定行后添加一行或多行文本。
d    全拼delete,表示匹配行的文本。
i    全拼insert,表示插入文本,在指定行前添加一行或多行文本。
p    全拼print,表示打印匹配行的内容,通常p会与选项-n一起使用。
s/regexp/replacement/    匹配regexp的内容,用replacement替换regexp匹配的内容,
regexp部分可以使用正则表达式,在replacement部分可以使用特殊字符 & 和 1-9 等匹配regexp部分的部分内容。
s/regexp/replacement/ 结尾常与g匹配做全局的替换。 在文件制定位置行后追加文件 [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# sed '2a 106,tianjing,TJ' a.log 101,shanghai,SH 102,beijing,BJ 106,tianjing,TJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ 在文件指定的行前插入文件 [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# sed '2i 106,tianjing,TJ' a.log 101,shanghai,SH 106,tianjing,TJ 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ 在指定行后最近多行文本 [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# sed '2a 106,tianjing,TJ 107,nanjing,NJ' a.log 101,shanghai,SH 102,beijing,BJ 106,tianjing,TJ 107,nanjing,NJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ 删除文件中一行指定的文本 [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# sed '2d' a.log 101,shanghai,SH 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ 删除文件中指定的多行文本 [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# sed '2,5d' a.log 101,shanghai,SH [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ 使用sed命令替换文本内容 [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# sed 's#beijing#liuzhou#g' a.log 101,shanghai,SH 102,liuzhou,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ 打印输出文件的指定行的内容 [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# sed '2p' a.log 101,shanghai,SH 102,beijing,BJ 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ [root@testdb ~]# sed -n '2p' a.log 102,beijing,BJ [root@testdb ~]# sed -n '2,3p' a.log 102,beijing,BJ 103,guangzhou,GZ [root@testdb ~]# cat a.log 101,shanghai,SH 102,beijing,BJ 103,guangzhou,GZ 104,shenzhen,SZ 105,hangzhou,HZ




原文地址:https://www.cnblogs.com/l10n/p/9416634.html