sed 命令
来源:互联网 发布:淘宝网店怎么装修店铺 编辑:程序博客网 时间:2024/04/28 02:45
一. sed 命令行格式
一般形式: sed [ 选项 ] sed 命令 输入文件
二. sed 脚本文件格式
sed [ 选项 ] –f sed 脚本文件 输入文件
三. 第一行具有 sed 命令解释器的 sed 脚本文件格式
sed 脚本文件 [ 选项 ] 输入文件
1. sed 在文件中查询文本的方式
方式
含义
x
X 为行号,如 1
x,y
表示范围从 x 到 y
/pattern/
查询包含模式的行
/pattern/ pattern /
查询包含两个模式的行
pattern/,x
在给定行号中,查询包含模式的行
x,/ pattern /
通过行号和模式查询匹配模式行
x,y!
查询不包含指定行号 x 和 y 的行
2. sed 编辑命令
命令
含义
P
打印匹配行
=
显示文件行号
a/
在定位行号后附加新文本信息
i/
在定位行号后插入新文本信息
d
删除低位行
c/
用新文本替换定位文本
s
适用替换模式替换相应模式
r
从另外一个文件中读文本
w
写文本到一个文件
q
第一个模式匹配完成后退出或立即退出
l
显示与八进制 ASCII 代码等价的控制字符
{}
在定位行执行的命令组
n
从另一个文件中读文本下移行,并附加在下一行
g
将模式 2 粘贴到 /pattern n/
y
传送字符
n
延续到下一输入行:允许跨行的模式匹配语句
3. sed 编程举例
命令
例
含义
p x
$ sed -n ‘2p’ quote.txt
打印第二行, $ 表示最后一行
p x,y
$ sed -n ‘1,3p’ quote.txt
打印 1 到 3 行
/pattern/
$ sed -n ‘/Neave/’p quote.txt
匹配单词 Neave ,并打印此行
x,/pattern/
$ sed -n ‘4,/Neave/’p quote.txt
在第四行查 Neave ,并打印此行
//$/
$ sed -n ‘//$/’p quote.txt
匹配元字符
1,$p
$ sed -n ‘1,$p/’p quote.txt
显示整个文件, $ 表示最后一行
/.*ing/
$ sed -n ‘/.*ing/’p quote.txt
匹配任意字母,后跟任意字母的 0 次或者多次重复
/pattern/=
$ sed -e ‘/music/=’ quote.txt
结果将打印出匹配的行号和整个文件
$ sed -n ‘/music/=’ quote.txt
结果只打印出匹配的行号
a/
创建 sed 脚本 append.sed
#!/bin/sed –f
/compay/ a/
Then suddenly it happened
命令为 $ ./append.sed quote.txt
执行结果是在 quote.txt 文件找到 compay , c/ 表示附加操作,然后在其后附加文件 Then suddenly it happened
i/
创建 sed 脚本
#!/bin/sed –f
4 i/
Then suddenly it happened
在行号 4 之前插入文本信息
c/
创建 sed 脚本
#!/bin/sed –f
/honeysuckle/ c/
The office band played well
执行结果是在 quote.txt 文件找到 honeysuckle , a/ 表示修改操作,将 The office band played well 替换 honeysuckle 所在的整行文本。
d
$ sed ‘1,3d’ quote.txt
删除 1 到 3 行
$ sed ‘/Neave/d’ quote.txt
删除 Neave 所在行
s
$ sed ‘s/night/NIGHT/’ quote.txt
查询 night 用 NIGHT 替换,只替换第一次匹配
s///g
$ sed ‘s/night/NIGHT/g’ quote.txt
全局替换
s///w
$ sed ‘s/night/NIGHT/w
sed.out’ quote.txt
将 NIGHT 替换 night 的结果保存到 sed.out
s// &/
$ sed ‘s/night/NIGHT &/p’
quote.txt
查询模式 nigiht 并保存,将替换文本 NIGHT 放在被替换模式之前, NIGHT 和 & 换位置,结果 NIGHT 放在被替换模式之后
保存 sed 结果
$ sed ‘/Neave/ w dht’ quote.txt
将查询 Neave 的匹配结果行,写入文件 dht 中。
从文件中读文本
$ sed ‘/Neave/r sedex.txt’
quote.txt
在 quote.txt 中匹配模式 Neave , r 表示 sed 将从另一个文件中读文本,读取到的文本放在匹配模式 Neave 后。
q
$ sed ‘/.a.*/q’ quote.txt
查询首次出现模式,然后退出
l
$ sed -n ‘1 ,$l ’ quote.txt
表示从 1 到 $ 最后一行,列出整个文件的控制字符
从 shell 向 sed 传值
$NAME=”It’s a go situation”
$REPLACE=”GO”
$echo $NAME | sed
“s/go/$REPLSCE/g”
It’s a GO situation
Sed 命令用的是双引号 ””
4. 一行名命令集
命令集
含义
‘s///.$//g’
删除以句点结尾行
‘-e /abcd/d’
删除包含 abcd 的行
‘s/[][][]*/[]/g’
删除一个以上空格,用一个空格代替
‘s/^[][]*/[]/g’
删除行首空格
‘s//.[][]*/[]/g’
删除句点后跟两个或更多空格,用一个空格代替
‘s/^$//g’
删除空行
‘s/^.//g’
删除第一个字符
‘s/COL/(…/)//g’
删除 COL 以及紧跟 COL 的后三个字符
s/^////g
从路径中删除第一个 /
追加文本
$ echo ”A B” | sed ‘s/A/ & C/g’ 结果 A C B
删除首字符
$ echo “abc.doc” | sed s/^.//g 结果 bc.doc
增加扩展名
$ echo “abc” | sed s/$/.doc/g 结果 abc.doc
sed 在 shell 中的应用
sed 用于删除 所有文件的空行
#!/bin/sh
#forsed
for files in `ls fo*`
do
sed -e "/^$/d" $files >$files.hold
mv $files.hold $files
done
- sed命令
- sed命令
- sed 命令
- sed命令
- Sed 命令
- sed 命令
- sed 命令
- sed命令
- sed命令
- sed 命令
- sed命令
- sed 命令
- sed命令
- sed命令
- sed命令
- Sed 命令
- sed 命令
- sed 命令
- c#的一些技巧
- 如何取得桌面,开始菜单等特殊位置路径?
- 显式加载DLL模块
- “太空人”的软件梦
- 哈哈哈都不知道改写什么
- sed 命令
- 认识PowerDesigner
- cpio 解压 oracle
- 数据库优化----存储过程编写经验和优化措施
- powerdesigner设计经验
- tomcat 转向 index.do
- 一个使用gdb定位死锁的方法!!
- 怎样在Windows Mobile上设计一个美观的用户界面程序(Win32)
- 移植2440的bootloader