正则表达式笔记 sed工具
[:alnum:] 代表英文大小写字符及数字,即0-9 A-Z a-z [:alpha:] 代表任何英文大小写字符,即A-Z a-z [:blank:] 代表空格键与TAB键 [:cntrl:] 代表键盘上面的控制案件,即包括CR LF TAB DEL等 [:digit:] 代表数字 0-9 [:graph:] 除了空格键与TAB键外其他的所有键 [:lower:] 代表小写字符 a-z [:print:] 代表任何可以被打印出来的字符 [:punct:] 代表标点符号 即"';:!#$等 [:upper:] 代表大写字符 A-Z [:space:] 任何会产生空白的字符 包括空格键和TAB [:xdigit:] 代表十六进制的数字类型 包括0-9 a-f A-F Sed工具 sed参数 -n 使用安静模式 一般数据都会被列出来到屏幕 加-n则值显示经过sed处理的行或者操作才被列出来。 -e 直接在命令行模式上进行sed动作编辑 -f 直接将sed动作写在一个文件内,-f filename则可以执行filename内的sed动作 -r sed的动作支持的是扩展性正则表达式的语法 默认是基础正则表达 -i 直接修改读取的文件内容,不是由屏幕输出 n1,n2 代表进行动作的行数,例如在第10-20行进行动作 则 10,20[动作行为] a 新增,a的后面可以接字符串,这些字符串会在新的下一行出现 c 替换,c的后面可以接字符串,这些字符可以替换n1,n2之间的行 d 删除,后面不接参数 i 插入,i后面可以接参数 插入的字符串会在新的上一行出现 p 打印,打印出数据 通常和sen -n一起进行 s 替换,可以直接进行替换的工作,通常s搭配g 扩展正则表达式 + 重复一个或者一个以上的前一个RE字符 ? 零个或者一个的前一个RE字符 | 或者的意思。例如 grep "aa|ab" () 找出组的字符串.例如 g(aa|ab)d ()+多个重复组的判断 范例一:将/etc/passwd的内容列出并且打印出行号 同时将2-5行删除 nl /etc/passwd | sed '2,5d' 范例二:将第二行后添加一行为aaaa nl /etc/passwd | sed '2a aaaa' 范例三:在第二行后加入两行 aa bb nl /etc/passwd | sed '2a aa > bb' 范例四:将2-5行内容替换为no 2-5 number nl /etc/passwd | sed '2,5c no 2-5 number' 范例五:仅列出文件内的5-7行 nl /etc/passwd | sed -n '5,7p' 部分数据的查找和替换功能 sed 's/要被替换的数据/新的数据/g' 删除匹配到的行 sed -i '/CREATE DATABASE/d' file 例:过滤出本机IP ifconfig eth0 | grep "inet addr" | sed 's/^.*addr://g'| sed 's/Bcast.*$//g' 例:将aa每行的.替换为! sed -i 's/.$/!/g' aa (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |