sed是一個很好的文件處理工具,本身是一個管道命令,主要是以行為單位進(jìn)行處理,可以將數(shù)據(jù)行進(jìn)行替換、刪除、新增、選取等特定工作
ed編輯器自身不會修改文本文件的數(shù)據(jù),它只會將修改后的數(shù)據(jù)發(fā)送到STOUT
s命令會用斜線間指定的第二個文本字符串來替換第一個文本字符串
echo "This is a test" | sed 's/test/big test/' #This is a big test
在sed命令上執(zhí)行多個命令時,只要用-e就可以了
sed -e 's/brown/green/; s/dog/cat/' date1 #將date1中brown替換成green,dog換成cat輸出到STOUT
sed可以指定作用的行
sed '2s/dog/cat' data #作用到第2行
sed '2,3s/dog/cat' data #作用到第2,3行
sed '2,$s/dog/cat' data #作用到第2行到結(jié)尾行
sed '/Samantha/s/bash/csh' data #作用到匹配Samantha的行上
sed '/rich/s/bash/csh' /etc/passwd #找到含有rich的行,然后用csh替換文本bash
i命令會在指定行前增加一個新行
a命令會在指定的行后增加一個新行
c命令會修改指定的行
y命令用于單個字符的替換 sed y/123/789/ data #data中的1替換成7,2替換成8,3替換成9
r命令允許將一個獨(dú)立文件中的數(shù)據(jù)插入到數(shù)據(jù)流中
$ cat data
This is an added line.
This is the second added line
$ sed '3r data' test
This is line number 1
This is line number 2
This is line number 3
This is an added line.
This is the second added line
This is line number 4
This is line number 5
This is line number 6
This is line number 7