sed 学习一 (替换)
替换
[address] s/pattern/replacement/flags
flags是:
n
1到512之间的一个数字,表示对文本模式中指定模式 n 次出现的情况进行替换
g
对模式空间的所有出现的情况进行全局更改,而没有 g 是通常只有第一次出现的情况被取代
#centos sed 好像不是这样的
p
打印模式空间的内容
w
file 将模式空间的内容写到文件file中
举例
[jack@xiaogt-db 18:41:21 29 ~/awk] $ cat a.txt
a
b
abc 123
abcde wer
abcde wer
[jack@xiaogt-db 18:42:20 30 ~/awk] $ sed '/abc/ s/abc/222/p' a.txt
a
b
222 123
222 123
222de wer
222de wer
222de wer
222de wer
为什么会这样,刚开始没想通,因为galf就突然来了感觉, sed 因为默认都会打印输出,在加上p 就会打印双份模式空间的内容,so This output
[jack@xiaogt-db 18:46:40 32 ~/awk] $ sed '/abc/ s/abc/222/w aa.txt' a.txt
a
b
222 123
222de wer
222de wer
[jack@xiaogt-db 18:46:46 33 ~/awk] $ cat aa.txt
222 123
222de wer
222de wer
一样就懂了,将模式空间的内容写到文件aa.txt中