正则表达式 grep与sed的文本处理

一:整理正则表达式

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。它由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。

主要常用的有:

元字符 功能 元字符 功能
^ 匹配字符串的开始位置 $ 匹配字符串的结束位置
. 匹配任意单个字符 * 匹配子表达式0次或n次
+ 匹配子表达式一次或n次 {n} 匹配n次
{n,} 至少匹配n次 {n,m} 匹配n-m次
匹配子表达式一次或0次 () 将括号里面的表达式定义为组
[xyz] 匹配xyz任意一个字符 [a-Z] 匹配指定字符范围的任意一个
[^a-Z] 匹配不在范围的任意字符 |

二:grep使用(正则表达式及字符处理)

目标文件/etc/passwd,使用grep命令或egrep

1.显示出所有含有root的行:

Image(58)

2.输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的内容:

Image(59)

3.  显示出有多少行含有nologin。

Image(60)

4.显示出那些行含有root,并将行号一块输出。

Image(61)

5.显示出文件中

6.新建用户

    abominable

    abominate

    anomie

    atomize

 编写正则表达式,将他们匹配出来

Image(62)

7.建四个用户

   Alex213sb

   Wpq2222b

   yH438PIG

   egon666

   egon

 过滤出用户名组成是字母+数字+字母的行

Image(63)

8.显示出/etc目录下所有包含root的文件名

Image(64)

9. 过滤掉/etc/ssh/sshd_config内所有注释和所有空行

Image(65)

三:Sed使用:以/etc/passwd文件为模板

1,删除文件每行的第一个字符。

Image(66)

2,删除文件每行的第二个字符。

Image(67)

3,删除文件每行的最后一个字符。

Image(68)

4,删除文件每行的倒数第二个字符。

Image(69)

5,删除文件每行的第二个单词。

Image(70)

6,删除文件每行的倒数第二个单词。

Image(71)

7,删除文件每行的最后一个单词。

Image(72)

8,交换每行的第一个字符和第二个字符。

Image(73)

9,交换每行的第一个字符和第二个单词。

Image(74)

10,交换每行的第一个单词和最后一个单词。

Image(75)

11,删除一个文件中所有的数字。

Image(76)

12,删除每行开头的所有空格。

Image(77)

13,用制表符替换文件中出现的所有空格。

Image(78)

14,把所有大写字母用括号()括起来。

Image(79)

15,打印每行3次。

Image(80)

16,只显示每行的第一个单词。

Image(81)

17,打印每行的第一个单词和第三个单词。

Image(82)

18,用命令获取格式为    mm/yy/dd    的日期格式,结合管道,将其换成   mm;yy;dd格式

Image(83)

 

posted @ 2017-03-22 22:26  加油头头  阅读(2824)  评论(0编辑  收藏  举报