sed文本处理命令

sed简介


sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,sed只是对缓冲区中原始文件的副本进行编辑,并不是编辑原始的文件。除非你使用重定向存储输出或者使用使用sed编辑命令中的w选项。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作。

sed命令参数

 

  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
  • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦

不怎么喜欢理论行的东西,来来来,实践实践~~~
操作的文件为sedfile

  • 在指定行添加行内容,比如在第三行添加"insertLine"内容
$sed -e 3a\insertLine sedfile
sed '2a insert' sedfile #在第三行后添加 即第三行开始
sed '2i insert' sedfile #在第二行前添加 即第二行开始

 

Paste_Image.png

  • 删除指定行内容,可以是一个范围的多行【1,2,3,4,5...$表示最后一行】
$sed -e '2,4d' sedfile #推荐
或者
$sed '2,4d' sedfile #没有-e也是可以的
#删除第二行
$sed '2d' sedfile
#要删除第 3 到最后一行
$sed '3,$d' sedfile
#注意 d表示删除然而 sed 后面接的是动作需要以单引号括起来

 

Paste_Image.png

  • 以行为单位替换内容
$sed '2,5c 这是alic替换的content' sedfile #替换第二到第五行的内容

 

Paste_Image.png

  • 以行为单位的显示
$sed -n '2,4p' sedfile #显示第二到第四行
$sed -n '二p' sedfile #搜索与二相关的行

 

Paste_Image.png

  • 内容的搜索并删除【以行为单位】
$sed '/二/d' sedfile #搜索到二相关的行并删除

 

Paste_Image.png

  • 内容搜索并替换
$sed 's/alic/灿/g' sedfile #将alic替换成灿

 

Paste_Image.png

  • 多点处理
sed -e '3,4d' -e 's/alic/灿/g' sedfile #删除第三四行 而且同时将alic替换成灿

 

Paste_Image.png

 

注意   :  以:为分割,将第一段和最后一段调换位置;+在里面是特殊符号,要脱意用-r

sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'g test.txt



常用案例  :

sed ‘s/stringa1/stringa2/g’ example.txt            example.txt文件中的 “string1” 替换成 “string2” 
sed ‘/^
/d’ example.txt                               example.txt文件中删除所有空白行   
sed ‘/ *#/d; /^/d’ example.txt                     example.txt文件中删除所有注释和空白行 
echo ‘esempio’ | tr ‘[:lower:]’ ‘[:upper:]’               合并上下单元格内容 
sed -e ‘1d’ result.txt                    从文件example.txt 中排除第一行 
sed -n ‘/stringa1/p’                     查看只包含词汇 “string1”的行 
sed -e ‘s/ *//’ example.txt           删除每一行最后的空白字符   


sed -e ‘s/stringa1//g’ example.txt                    从文档中只删除词汇 “string1” 并保留剩余全部   
sed -n ‘1,5p;5q’ example.txt                      查看从第一行到第5行内容   
sed -n ‘5p;5q’ example.txt                  查看第5   
sed -e ‘s/00*/0/g’ example.txt                          用单个零替换多个零   

 

 

 

转载于:https://my.oschina.net/u/3803405/blog/1981771

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值