加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux shell编程基础 九、sed和awk

发布时间:2013-05-08 17:43:22 所属栏目:Linux 来源:站长网
导读:正则表达式 一个点(.)代表一个字符。 比如:.a. 代表3个字符,中 间一个字符是a,两边各一个任意字符。 比如:... 代表3个任意字符。 若 要匹配点(.)本身,
正则表达式

一个点(.)代表一个字符。

比如:.a. 代表3个字符,中 间一个字符是a,两边各一个任意字符。

比如:... 代表3个任意字符。

若 要匹配点(.)本身,则使用转义字符。

比如:my... 代表my.后接两个字符。

行首匹配^

行尾匹配$

[...] 代 表字符串中的一个字符。

比如:[abc] 代表a或b或c中的任意一个字符。

比如:[Mm]y 代表My或者my。

^出现在[]里,代表“非”

比如:[^a]代表 不是a

*代表前面的字符有0个或者0个以上

比如:a*b代表ab或aab或aaab等 。

{...}代表制定符合的个数。

比如:{1,5}代表前面的字符有1-5个。

Sed

sed基本语法:sed '样 式' 文件

样式中,使用// 代表寻找,比如1,5代表第一到第五 行,/aaa/,/bbb/ 表示作用范围从aaa的行到bbb的行。

例子:

sed '1,4d' file 指的是把第一到第四行删除。

sed '/aaa/d' file 指的是把还有aaa的那行删除。

sed '/[0-9]{3}/d' file 指的是把还有3个数字的行删除。

sed '/^$/d' file 指的是把空白行删除。

sed '/aaa/!d' file 指的是把不含有aaa行的删除。

sed '/aaa/p' file 指的是把 含有aaa的行显示出来。

sed -n '/aaa/p' file 指的是把含有aaa的 行显示出来,同时显示行号。

使用sed取代字符

例子:

sed 's/aaa/bbb/p' file 将bbb取代aaa,只取代一次。

sed 's/aaa/bbb/pg' file 将bbb取代aaa,全部取代。

sed 's/aaa//p' file 将aaa删除,只删除一次。

sed 's/^...//' file 将每行的前3个字符删除。

sed 's/...$//' file 将每行的后3个字符删除。

sed -n 's/(a)/1b/p' file 找到第一个a然后替换成ab。

awk

awk '/aa/' file 显示含有aa的行。

awk '{print $1, $2}' file 显示第一第二字段。

awk '/aa/{print $1, $2} ' file 将含有aa的行的第一和第二个字段显示出来。

awk -F: '/^root/{print $1, $2}' /etc/passwd 指定:为分隔符,打印第一和 第二字段。

awk -F: 'BEGIN{OFS="+++"}'/^root/{print $1, $2} /etc/passwd 以:为分隔符,打印第一和第二段,而且彼此用+++分开。

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读