1.简介
一个非交互式、面向文本流的编辑器,能对文本进行匹配、过滤和转换
2.命令格式
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
3.示例
1 2
| unix macos macos unix unix unix windows windows unix unix unix unix unix unix unix unix unix unix unix unix
|
以上是文件原始内容
1
| # sed 's/unix/linux/g' data.txt
|
该命令作用是使用指令s(格式为:s/pattern/replacement/flags)匹配每行的unix,将其替换为linux,g表示对每行的所有匹配进行替换,输出如下:
1 2
| linux macos macos linux linux linux windows windows linux linux linux linux linux linux linux linux linux linux linux linux
|
上一个例子的操作不会影响到原文件,只是默认进行打印输出
1
| # sed -i 's/unix/linux/g' data.txt
|
该命令添加了-i选项,表示直接对原文件进行操作
1
| # sed -i.bak 's/unix/linux/g' data.txt
|
该命令添加了-i并且紧跟.bak(可以是其他任意字符串作为后缀比如temp、-save等),这会使得产生一个相应名字的备份文件,并对源文件进行操作
1 2
| unix macos macos unix unix unix windows windows unix unix unix unix unix unix unix unix unix unix unix unix
|
1
| # sed '/macos/p' data.txt
|
1 2 3
| unix macos macos unix unix unix windows windows unix unix unix macos macos unix unix unix windows windows unix unix unix unix unix unix unix unix unix unix unix unix
|
该命令会将存在匹配(macos)的行进行打印(p)
这里输出了3行,第1行是原始第1行,第2行是由于第1行的匹配进行的打印输出,第3行为原始第3行
可以指定-n选项抑制原始行数据的打印,如下:
1
| # sed -n '/macos/p' data.txt
|
1
| unix macos macos unix unix unix windows windows unix unix
|
1 2
| unix macos macos unix unix unix windows windows unix unix unix unix unix unix unix unix unix unix unix unix
|
该命令将指定的第2行进行删除操作,输入如下:
1
| unix macos macos unix unix unix windows windows unix unix
|
4.资料