- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目录
Sed 1
sed常用选择项 1
语法 正则表达式 1
替换 5
删除 5
追加 插入 更改 5
列表 6
转换 6
打印 6
打印行号 6
下一步 6
读和写文件 7
退出 7
高级命令 7
awk 12
分隔符 12
表达式 字符链接 12
系统内置变量 13
格式化输出 15
使用shell 变量 15
流控制 16
数组 17
测试数组成员 19
函数 20
高级讲解 22
域 22
变量 23
特殊模式 begin end 23
命令参数 24
Sed
sed常用选择项
sed/awk +[参数选项]+ “语法“ + 文件名
-n 关闭输出到标准输出
-e 执行多条sed命令;(或者用“;”间隔多条指令)
-f 从命令脚本读如命令
Sed –f sed_srcript_file input_file
sed/awk的特点
均是读入文件的一行做为输入,应用于所有的命令,再读入下一行
执行操作:
1 从输入文件中读入一行
2 为改行做一个拷贝
3 在该行上执行 “语法”动作
4 为下一行执行第一步动作
语法 正则表达式
/pattern/action
Pattern 正则表达式
Action 执行动作
执行过程:
1 顺序收索每个模式pattern 直到发现一个匹配
2 发现匹配后执行action 动作
3 执行完成后,到达下一个action ,执行第一步
4 当所有模式试过一遍后,读取下一行。
在第四步前,sed显示被改动的记录,awk必须手动显示改动的内容,
Sed可以使用的动作包括编辑单个字母的命令,awk动作通常是一个编程语句集合。
Pattern 包括 普通字符和通配符。
. 点号
* 星号 在此处意思是匹配前面字符出现0次以上
[chars] 匹配chars中的任何一个字符,chars是一个字符序列。可用“-”字符指出字符范围,“^”是chars中的第一个字符,则匹配未在chars中指定的字符
^ 匹配一行的开始
$ 匹配一行的末
\ 转义符号
[…] 匹配括弧里面的任意字符,第一字符如果是^表示不包含所列示字符,如果里面包含’[ ]’符号时候,表示同时包含’[]’,如果是任选之一应写成’][’
\{n, m\} 匹配前面的匹配n-m次;\{n\}匹配前面的模式n次
Egrep 和awk 可以使用的特殊字符
‘\<’ ‘\>’
+ 匹配前面的正则表达式1次以上
? 匹配前面的正则表达式0次以上
| 匹配前面或者后的表达式
( ) 对正则表达式分组,设置匹配集合
Sed是先对第一个行应用所有编辑命令,在对第二个行。即后一个命令处理的输入行是前一个命令处理后的输入行,而不是原始行输入行
{n,m}
例子:
/the / 只匹配 the 单词
/^the / 只匹配the单词开头的
/ the$/ 只匹配the单词结束的
/^$/ 匹配空行 /^.*$/ 整行
X,y 行号范围从指定的x到y
X,y! 查询不包含x ,y行
/pattern/pattern/ 查询包含2个模式匹配的行
/pattern/,x 在给定的x行上匹配模式
X,/pattern/ 通过行号与模式匹配
X, /pattern/ ! 不包含此区间 /! 不能空
#n 加入文本中,默认输入行不显示
p 打出该行
= 显示匹配的行号
sed '/a/=' 显示匹配a的行号
d 删除该行
a\ 在指定行后追加文本,格式
[address]a\ 符号‘ \ ’必须加
Tese1 \ 附加多行加‘ \ ’, 无此符号结束
Tese2\ 存为script文件
…..
Sed -f script_filename input_filename
i\ 在指定行前追加文本,格式同a\
c\ 用文本替换指定行文本,格式同a\
r 读入文件
w 写文本到一个文件
q 读取到/address/定位的行后退出
{} 在定位的行上执行命令组, 但必须已[^j]换行符分开。左大括号必须在行尾,右打括号必须单独占一行。大括号之后每空格。大括号里面还可以对单独命令使用匹配
sed -n '/a/{^J=^Jp^J}
跳过文本当前行,读入下一行
sed -n '/a/{^Jn^Jp^J}'
n 从另外一个文本中读入文本下一下行
替换
[adress]s/pattern1/replacement/flag
Flag 的选择有
n 1-512 表示对模式中指定模式的第n次出现情况进行替换。\2 表示替换第二次匹配模式的字符串
g p w
正则表达式 可以使用其他定界符
Replacement 部分的特使字符
& 用正则表达式匹配的内容作替换
\n 匹配第n个字串, 在pat
文档评论(0)