常用正则表达式 grep awk sed
常用正则表达式: 1.“.”代表任意单个字符 2.“^”代表行的开始 3.“$”代表行的结束,“^$” 就表示空行 4.“[…]”匹配括号中的字符之一 注意:不管[]里面多复杂,它的结果都是一个字符! 可以使用^做[]的内置前缀,在[]里的开头,表示除了其后跟着的其他任意字符 5.“*”用于修饰前导字符,表示前导字符出现0次或任意多次,“.*” 表示任意字符串 6.“?”用于修饰前导字符,表示前导字符出现0或1次 7.“+”用于修饰前导字符,表示前导字符出现1或多次 8.“{n,m}”用于修饰前导字符,表示前导字符出现n至m次(n和m都是整数,且n<m) “{n,m}”还有其他几种形式: “{n} ”连续的n个前导字符 “{n,}”连续的至少n个前导字符 9.“”用于转义紧跟其后的单个特殊字符,使该特殊字符成为普通字符 10.“|”表示或 11.“()”将部分内容合成一个单位组
sed的基本命令: 1.替换命令s [root@server ~]#sed ‘s/abc/(abc)/’ <old>new [root@server ~]#sed ‘s/abc/(&)/’ <old>new [root@server ~]#sed ‘s/[a-z]*/(&)/’ <old>new 3.sed默认只替换每行第一次出现的搜索字符串,利用/g可以替换所有搜索字符串。 [root@server ~]#sed ‘s/test/mytest/g’ example [root@server ~]#sed ‘s/^192.168.0.1/&localhost/’example 4.使用-e选项可以对同一文件或行作多次修改 [root@server ~]#sed -e ‘3,5s/e/ha/’ -e ‘s/ll/aaa/’ a1 5.删除行,命令d [root@server ~]#sed ‘/how/ d’ a1 附:nl可以将输出的文件内容自动加上行号 [root@server ~]#nl /etc/passwd | sed ‘3,$ d’ 6.增加行,命令a(在指定的行后新增)或命令i(在指定的行前新增),后面可以接字符串,而这些字符串会在新的一行出现。 [root@server ~]#nl /etc/passwd | sed ‘2a xxxx’ [root@server ~]#nl /etc/passwd | sed ‘2i xxxx’ [root@server ~]#nl /etc/passwd | sed ‘2i xxx > yyy’ 7.取代行,命令c,后面可以接字符串,这些字符串可以取代n1,n2行之间的内容 [root@server ~]#nl /etc/passwd | sed ‘2,5c xxxx’ 8.打印,命令p [root@server ~]#sed ‘/north/p’ datafile //默认输出所有行,找到north的行重复打印 [root@server ~]#sed -n ‘/north/p’ datafile //禁止默认输出,只打印找到north的行 [root@server ~]#nl /etc/passwd | sed -n ‘5,7p’ //仅列出/etc/passwd文件中的5至7行内容 注:sed 的-i选项可以直接修改文件中的内容 [root@server ~]#sed -i‘2i xxxx’ a1 grep命令的用法 参数: 1. -A NUM [root@server ~]#grep ?A 1 panda file //除了列出符合的行外,还列出后NUM行 2. -A NUM [root@server ~]#grep -B 1 panda file //除了列出符合的行外,还列出前NUM行 3. -C NUM 列出符合行之外并列出上下各NUM行,默认值是2。 [root@server ~]#grep -C NUM pandafile 4.-c, --count 不显示符合样式行,只显示符合的总行数。若再加上-v,--invert-match,参数显示不符合的总行数 5.-i,--ignore-case 忽略大小写差别 6.-n,--line-number 在匹配的行前面打印行号 7.-v,--revert-match 反检索,显示不匹配的行 8.精确匹配:在抽取的字符串前加“&;”,在抽取的字符串后加“&;”。 [root@server ~]#grep '&;cancel&;' filename 9.-s 可屏蔽错误信息,使其不显示在屏幕上 [root@server ~]#grep "root" /etc/password //没有password这个文件,加上-s会屏蔽错误信息
awk命令的用法 【布尔表达式】 ①表达式中可以使用变量(如字段变量$1,$2等)和/regexp/ ②布尔表达式中的操作符: 关系操作符: < > <= >= == != ③&&(与) 和 ||(或) 可以连接两个/regexp/或者布尔表达式,构成混合表达式。!(非) 可以用于布尔表达式或者/regexp/之前。 [root@server ~]#awk '($1 < 10 ) && ($2 > 10) {print "ok"}' xxxx [root@server ~]#awk '/^d/ || /x$/ {print"ok"}' xxxx (使用$1,$3表示参照第1域和第3域时,注意用逗号做域分隔符) 例: [root@server ~]#awk ?F: ‘{print $1,$7}’ /etc/passwd [root@server ~]#awk ?F: ‘{print $1 “t” $7}’ /etc/passwd [root@server ~]#awk ?F: ‘{print $1 “,” $7}’ /etc/passwd [root@server ~]#awk ?F: ‘$3>500 {print $1,sans-serif;">[root@server ~]#awk ?F: ‘BEGIN {print “name,shell”} $3>500 {print $1”,”$7} END {print “blue,/bin/bash”}’/etc/passwd [root@server ~]#awk ‘{print $0}’ /etc/passwd //$0所有记录 [root@server ~]#awk ?F: ‘/root/’ /etc/passwd [root@server ~]#awk ?F: ‘/^root/’ /etc/passwd [root@server ~]#awk ?F: ‘/root/ {print $7}’ /etc/passwd awk常用内置变量 FILENAME awk浏览的文件名 FS 设置输入域分隔符,等价于命令行-F选项 NF 浏览记录的域个数(每一行($0)拥有的字段总数) NR 已读的记录数(awk所处理的是第几行数据) 除了awk的内置变量,awk还可以自定义变量 [root@server ~]#awk -F: ‘$3>500 { print “filename:” FILENAME “,linenumber:” NR “,columns:” NF “,linecontent:”$0}’ /etc/passwd [root@server ~]#awk ?F: ‘{print NF,NR,$0} END {print FILENAME}’ /etc/passwd awk ‘{count++;print $0;} END {print “user count is:”,count}’ /etc/passwd count是自定义变量,没有初始化时,默认是0,为保妥应初始化为0[root@server ~]#awk ‘BEGIN {count=0; print “[start]user count is:”,count} {count=count+1;print $0;}END {print “[end]user count is :”,count}’ /etc/passwd 例:统计某个文件夹下的文件占用的字节数 [root@server ~]#ls ?l /etc/ | awk ‘BEGIN {size=0;} {size=size+$5;} END {print “[end]size is:”,size}’ 如果以M为单位显示: 注:以上统计没有包括子目录中的文件。 例:快速查看所有文件的长度及其总和,排除子目录: [root@server ~]#ls ?l /xxxx/ | awk ‘/^[^d]/ {print $9 “t” $5;sum+=$5} END {print “total KB:” sum}’ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Parameter '__frch_item_0' not found. Availab
- Oracle drop table 和 truncate table对grant授权的影响
- 解决:oracle+myBatis ResultMap 类型为 map 时,表字段类型
- 正则表达式匹配聊天中所有url连接地址-高亮显示
- pull解析XML
- Flex布局各属性笔记
- Swift学习笔记之函数
- Flex 学习之路之八 用户接口user interface 位置大小的设置
- OpenCV学习笔记(26)自动识别OpenCV版本并添加依赖库
- c# – 如何在Windows Phone 7应用程序中以脱机模式从Web查看