免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1018 | 回复: 0
打印 上一主题 下一主题

linux学习杂记_regexp_grep_sed_awk [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-08 13:13 |只看该作者 |倒序浏览

正则表达式是一种模糊匹配和替换的工具.
ab aabb aaabbb这种规律无法用正则表达式匹配
c语言命名规则,用'^[A-Za-z_][A-Za-z0-9]*$'匹配
'\( o \| c \) d' 匹配od  cd
字符类:
.                 匹配任何单个字符,除换行符
[]               匹配[]内的任意字符
[[:xxx:]]      扩展字符类
数量限定类:    表示前面所修饰的项目(字符,字符类,小括号括起 \( \) 的单元 )的数量:
\?    匹配0次或1次
\+    匹配一次或多次
*    匹配0次或多次
\{N\}    匹配N次
\{N, \}    匹配N次或更多
\{N, M\}   匹配N次-M次
位置限定类:  表示特殊的位置
$         行末
^        行首
\       单词结尾
转义字符backslash:    将普通字符转成特殊操作符,或将特殊操作符转成普通字符,如\.  \*  \\
其他操作符:    \( \) \|    对表达式起作用,而不是对目标串,如:\(ab\)\{9\}匹配连续出现9次ab的串
grep egrep增强型,很多字符不需要\转义了.
$egrep '[a-z]{9}' a.txt        查找具有连续9个小写字母的行
$grep '!$' a.txt                       查找以!结尾的行
sed 'script' files        其中,files是一个或多个待处理的文件名; script是一段sed脚本, 由一条或多条sed命令组成, 每条命令的基本格式为 /pattern/ action, pattern是正则表达式, action如下:
action
功能
p
p打印当前行
d
d删除当前行
s/pattern1/pattern2/
s查找第一个匹配p1的串,替换为p2
/pattern/s/pattern1/pattern2/
s查找符合p的行,将该行第一个匹配p1的串替换为p2
s/pattern1/pattern2/g
s查找匹配p1的串,全部替换为p2
sed缺省是把待处理文件的内容与处理结果一同输出.只想输出处理结果,加-n选项;
如:$ sed -n '/abc/p' testfile        $ sed 's/b/-&-/' testfile  把abc变成a-b-c (&表示匹配p1的字串)
    $sed 's/\(a\)\(b\)/-\1-~\2~/' testfile   \1表示第一个()匹配的内容,\2表示第二个()匹配的内容
sed能以行为单位对文件进行流处理,而awk除了以行为单位处理,还能以列为单位对文件进行处理;
awk 'script' files, 其中命令的基本格式是: /pattern/ {action}  
$ awk '{print $2;}' testfile            自动变量$1,$2...分别表示第一列,第二列等,$0表示整行;
$ awk '$2=75 {print $0;}' testfile 可进行条件判断
$ awk '/^ *$/ { x=x+1;} END {print x;}' test            统计空行的数目,可以用变量.
普通的pattern每行都执行一次,BEGIN 和 END 只是开头和结尾的时候执行一次;
awk的内建变量:
FILENAME       当前输入文件的文件名,只读
NR                         当前的行号,只读,record
NF                          当前行拥有的列数,只读,field
OFS                         输出格式的列分割符,缺省空格
FS                            输入文件的列分割符,缺省空格和TAB
ORS                         输出格式的行分割符,缺省换行符
RS                            输入文件的行分割符,缺省换行符
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/53151/showart_417490.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP