sed 行操作

nl /etc/passwd |sed '2,5 d' 删除文件2-5行
nl命令 输出的文件内容自动加上行号
sed [-nefr] [动作] 以行为单位
1.
-n 仅显示script 处理后的结果
-e 在命令行模式进行sed的动作编辑
-f 后接script文件名
-r 支持扩展式正则表达式
-i 直接修改文件内容,不打印输出
2.动作
[n1[[2]]function sed后用单引号括起
n1 n2表行号
function参数
2.1以行为单位 删除新增
a: 新增字符串为新的一行出现在下一行 sed'2a drink tar'第二行后面
d: 删除
2.2 行为单位,替换、显示
整行替换: nl /etc/passwd |sed ‘2,5c No 2-5 number’
c:后接字符串替换 n1,n2之间的行
显示整行: nl /etc/passwd |sed -n '5,7p' 直接取处5-7行打印
-n不重复输出
p:将sed-n 数据打印出来

2.3替换部分数据:sed's/要被替换的字符串/新的字符串/g'
s:替换。搭配正则表达式
如: /sbin/ifconfig ech0 |grep 'inet addr' | sed 's/^.*addr://g'
取出一个字符穿的前50个字符 cat your.fa | grep -v ">" | sed -r 's/(.{50}).*/\1/g


zcat All_20170710.vcf.gz | sed -E '/^[^#]/{s/^([^#]+)/chr\1/; s/^chrMT/chrM/}' > All_20170710.fixed.vcf # b37-hg19

上一篇:/etc/passwd被误删(也适用于/etc/passwd误修改的情况)


下一篇:【电脑讲解】电脑常用快捷键,10个常用快捷键提高电脑工作效率