前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sed的用法

sed的用法

作者头像
生信编程日常
发布2020-04-14 17:20:13
1.4K0
发布2020-04-14 17:20:13
举报

sed是一个在linux下很好用的文件处理工具,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增等。

参数说明:

-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。 -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。 -h或--help 显示帮助。 -n或--quiet或--silent 仅显示script处理后的结果。 -V或--version 显示版本信息。

常用操作:

a :新增, a 的后面可以接字串,而这些字串会在下一行出现 c :行取代, c 的后面可以接字串,这些字串可以取代某几行! d :删除行 i :插入,i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p :打印,即将某个选择的数据print出来 s :字符串取代

sed命令主要是:sed +参数+范围+操作 +要操作的文件。 如:sed -n '1d' a.txt #删除第一行 -n 为quiet或silent模式,1为选择第一行,d为删除

1.删除:d
代码语言:javascript
复制
sed '$d' a.txt             #删除最后一行
sed '1,2d' a.txt           #删除第一行到第二行
sed '2,$d' a.txt           #删除第二行到最后一行

对行的处理: 1 选择第1行。 2,5 选择2到5行,共4行。 1~2 选择奇数行。 2~2 选择偶数行。 2,+3 和2,5的效果是一样的,共4行。 3,$ 从第3行到文件结尾。

范围的选择还可以使用正则匹配,如: /ab/,+2 选择出现ab字样的行,以及后面的2行。 /^a/,/b/ 选择以a开头的行,和出现b字样行之间的数据。

2.打印某行: p
代码语言:javascript
复制
sed -n '1,2p' a.txt       #打印第一行到第二行

使用模式进行查询

代码语言:javascript
复制
sed -n '/hello/p' a.txt    #查询包括关键字hello所在所有行
sed -n '/\$/p' a.txt        #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义
3.增加一行或多行字符串: a
代码语言:javascript
复制
sed '1a hello' a.txt  #第一行后增加字符串"hello"
sed '1,3a hello lily' a.txt #第一行到第三行后各增加字符串"hello lily"
sed '1a drink hello\nlily' a.txt   #第一行后增加多行,使用换行符\n
4.替代某一行或者某几行:c
代码语言:javascript
复制
sed '1c Hello' a.txt                #第一行代替为Hello
sed '1,2c Hello' a.txt          #第一行到第二行代替为Hello
5.替换一行中的某部分: s

格式:sed 's/要替换的字符串/新的字符串/g' (要替换的字符串可以用正则表达式)

代码语言:javascript
复制
sed 's/yes/no/g' a.txt  #替换yes为no
6.插入 :i
代码语言:javascript
复制
sed -i '$a end' a.txt        #在文件a中最后一行直接输入"end"

删除匹配行

代码语言:javascript
复制
sed -i '/匹配字符串/d'  a.txt  
sed -i '/^a.*/d' a.txt

替换匹配行中的某个字符串

代码语言:javascript
复制
sed -i '/匹配字符串/s/替换源字符串/替换目标字符串/g' a.txt
sed -i 's/^a.*/hello/g' a.txt 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.删除:d
  • 2.打印某行: p
  • 3.增加一行或多行字符串: a
  • 4.替代某一行或者某几行:c
  • 5.替换一行中的某部分: s
  • 6.插入 :i
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档