生物信息学Linux

sed

2019-01-06  本文已影响174人  Amy_Cui

sed

可依照script的指令,来处理、编辑文本文件。 多用于对文本的行来操作,
常见 sed [option] 's///g' tmp.txt


参数说明

-e 多次使用sed

-r 扩展正则表达式

-n 的时候将只打印包含模板的行

动作说明


echo 192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0|sed 's/Bcast.*$//g'

# 下面重点 !!!

nl /etc/passwd |sed 's/:/\t/'|less -S

nl /etc/passwd |sed '4,$s/:/\t/'|less -S

nl /etc/passwd | sed -e 's/root/#####/' -e 's/qmcui/###!!!/'|less -S

# nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'    # 多次替换模式

#nl /etc/passwd | sed -e 's/:/\t/;s/:/\t/'|less -S  # 理解;

#nl /etc/passwd | sed 's/false$/&! ! !/' | less -S  # &代指match

# 上面重点 !!!

nl /etc/passwd | sed '1a\llll llllllll \n lllllll'|less -S

nl /etc/passwd | sed '2a drink tea' # 插到第2行后

nl /etc/passwd | sed '2i drink tea' | cat -n    # 插到第2行前

nl /etc/passwd | sed '3,$d' # 删除,熟悉3,$ + 动作命令

nl /etc/passwd | sed '2,5c No 2-5 number'    # 替换2-5行

nl /etc/passwd | sed -n '5,7p'    # 输出

nl /etc/passwd | sed -n '2p;4,5p'

nl /etc/passwd |sed -n '4,+5p'

nl /etc/passwd | sed -n '4~4p'

nl /etc/passwd | sed -n '/root/p'   # 只打印包含模式root的行

nl /etc/passwd | sed '/^$/d'

sed -i 's/\.$/\!/g' regular_express.txt

sed -i '$a # This is a test' regular_express.txt

动作含义

a :新增, a 接字串,而这些字串会在新的一行出现(目前的下一行)~

c :取代, c接字串,这些字串可以取代 n1,n2 之间的行!

d :删除, d 后面通常不接任何;

i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p :打印,通常 p 会与参数 sed -n 一起运行~

s :取代,

​ + g:全局替换

​ + i:忽略字符大小写

通配符:

​ $:

​ 表示行号时:最后一行

​ 一行时候:代表行末!

示例:

​ /pattern1/,/pattern2/ :第一次被模式1匹配到的行开始到第一次被模式2匹配到的行结束。

区域处理

sed '1,2s/ok//'

   第一二行执行s/ok//操作!

uptime|sed -n '/,/s/,/ /gp'

问题中/,/是个正则表达式,用来在s///前面表示区域!表示只要该行中有逗号,那么就执行s命令。

  将含有,的行进行 s/,/ /gp操作,将,全部换成空格并print

同款示例:

nl /etc/passwd | sed -n '/root/s/:/\t/p'

nl /etc/passwd | sed -n '1,2s/:/\t/p'

不学习: N,n

上一篇 下一篇

猜你喜欢

热点阅读