Shell正则表达式和文本处理工具(一)

作业一:整理正则表达式博客

1、什么是正则
正则就是用一些具有特殊含义的符号组合而成(称为正则表达式)来描述字符或者字符串的方法。
或者说:正则就是用来描述一类事物的规则。

通配符是由shell解释得。如果shell是爷爷,通配符就是爹。
正则表达式则是由命令解释得,命令又被shell解释。如果shell是爷爷,正则表达式就是孙子。
通配符和命令是一个级别的。

通配符是为了方便命令操作,正则表达式是为了操作文本内容、字符或字符串。

*:左边的那一个字符有0个到无穷个
+:左边的那一个字符有1个到无穷个
?:左边的那一个字符有0个到1个
{n}:左边的那一个字符有n个
{n,m}:左边的那一个字符有n个到m个
{n,}:左边的那一个字符有n个到无穷个

[a-z]:所有的小写字母
[A-Z]:所有的大写字母
[a-zA-Z]:所有的大小写字母,等于[a-Z]
注意的一点是:如果要匹配的字符就是-本身话,必须放到最后去[123123\-]

作业二:grep作业(正则表达式及字符处理)

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

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

[[email protected] ~]# egrep ‘root‘ /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

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

[[email protected] ~]# egrep -A 2 ‘bash‘ /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
luchuan:x:1001:1001::/home/luchuan:/bin/bash
egon:x:1002:1002::/home/egon:/bin/bash
tom:x:1003:1003::/home/tom:/bin/bash
aa:x:1004:1004::/home/aa:/bin/bash
luchuangao:x:1005:1005::/home/luchuangao:/bin/bash
alex:x:1006:1006::/home/alex:/bin/bash
jack:x:1007:1008::/home/jack:/bin/bash
rose:x:1008:1009::/home/rose:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin

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

[[email protected] ~]# egrep -c ‘root‘ /etc/passwd
2

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

[[email protected] ~]# egrep -n ‘root‘ /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin

5.显示出文件名

[[email protected] ~]# egrep -l ‘root‘ /etc/passwd
/etc/passwd

6.新建用户

  abominable
  abominate
  anomie
  atomize
  编写正则表达式,将他们匹配出来

[[email protected] ~]# egrep ‘^a[a-z]o[a-z]+e‘ /etc/passwd
abominable:x:1009:1010::/home/abominable:/bin/bash
abominate:x:1010:1011::/home/abominate:/bin/bash
anomie:x:1011:1012::/home/anomie:/bin/bash
atomize:x:1012:1013::/home/atomize:/bin/bash

7.建四个用户

  Alex213sb
  Wpq2222b
  yH438PIG
  egon666
  egon

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

[[email protected] ~]# egrep ‘[a-Z]+[0-9]+[a-Z]+‘ /etc/passwd
Alex213sb:x:1013:1014::/home/Alex213sb:/bin/bash
Wpq2222b:x:1014:1015::/home/Wpq2222b:/bin/bash
yH438PIG:x:1015:1016::/home/yH438PIG:/bin/bash

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

[[email protected] ~]# grep -rl ‘root‘ /etc/* | grep ‘root‘
/etc/security/chroot.conf

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

[[email protected] etc]# egrep -v ‘^$|^#‘ /etc/ssh/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTHPRIV
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
UsePrivilegeSeparation sandbox          # Default for new installations.
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem       sftp    /usr/libexec/openssh/sftp-server

作业三:Sed作业:以/etc/passwd文件为模板

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

[[email protected] ~]# sed -r ‘s/^(.)(.*)$/\2/‘ test
oot:x:0:0:root:/root:/bin/bash
in:x:1:1:bin:/bin:/sbin/nologin
ginx:x:991:547:Nginx web server:/var/lib/nginx:/sbin/nologin
bominable:x:1009:1010::/home/abominable:/bin/bash
bominate:x:1010:1011::/home/abominate:/bin/bash
nomie:x:1011:1012::/home/anomie:/bin/bash
tomize:x:1012:1013::/home/atomize:/bin/bash
lex213sb:x:1013:1014::/home/Alex213sb:/bin/bash
pq2222b:x:1014:1015::/home/Wpq2222b:/bin/bash
H438PIG:x:1015:1016::/home/yH438PIG:/bin/bash
gon666:x:1016:1017::/home/egon666:/bin/bash
gon:x:1017:1002::/home/egon:/bin/bash

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

[[email protected] ~]# sed -r ‘s/^(.)(.)(.*)$/\1\3/‘ test
rot:x:0:0:root:/root:/bin/bash
bn:x:1:1:bin:/bin:/sbin/nologin
ninx:x:991:547:Nginx web server:/var/lib/nginx:/sbin/nologin
aominable:x:1009:1010::/home/abominable:/bin/bash
aominate:x:1010:1011::/home/abominate:/bin/bash
aomie:x:1011:1012::/home/anomie:/bin/bash
aomize:x:1012:1013::/home/atomize:/bin/bash
Aex213sb:x:1013:1014::/home/Alex213sb:/bin/bash
Wq2222b:x:1014:1015::/home/Wpq2222b:/bin/bash
y438PIG:x:1015:1016::/home/yH438PIG:/bin/bash
eon666:x:1016:1017::/home/egon666:/bin/bash
eon:x:1017:1002::/home/egon:/bin/bash

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

[[email protected] ~]# sed -r ‘s/([^a-Z])(.*)(.)$/\1\2/‘ test
root:x:0:0:root:/root:/bin/bas
bin:x:1:1:bin:/bin:/sbin/nologi
nginx:x:991:547:Nginx web server:/var/lib/nginx:/sbin/nologi
abominable:x:1009:1010::/home/abominable:/bin/bas
abominate:x:1010:1011::/home/abominate:/bin/bas
anomie:x:1011:1012::/home/anomie:/bin/bas
atomize:x:1012:1013::/home/atomize:/bin/bas
Alex213sb:x:1013:1014::/home/Alex213sb:/bin/bas
Wpq2222b:x:1014:1015::/home/Wpq2222b:/bin/bas
yH438PIG:x:1015:1016::/home/yH438PIG:/bin/bas
egon666:x:1016:1017::/home/egon666:/bin/bas
egon:x:1017:1002::/home/egon:/bin/bas

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

[[email protected] ~]# sed -r ‘s/([^a-Z])(.*)(.)(.)$/\1\2\4/‘ test
root:x:0:0:root:/root:/bin/bah
bin:x:1:1:bin:/bin:/sbin/nologn
nginx:x:991:547:Nginx web server:/var/lib/nginx:/sbin/nologn
abominable:x:1009:1010::/home/abominable:/bin/bah
abominate:x:1010:1011::/home/abominate:/bin/bah
anomie:x:1011:1012::/home/anomie:/bin/bah
atomize:x:1012:1013::/home/atomize:/bin/bah
Alex213sb:x:1013:1014::/home/Alex213sb:/bin/bah
Wpq2222b:x:1014:1015::/home/Wpq2222b:/bin/bah
yH438PIG:x:1015:1016::/home/yH438PIG:/bin/bah
egon666:x:1016:1017::/home/egon666:/bin/bah
egon:x:1017:1002::/home/egon:/bin/bah
[[email protected] ~]#

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

[[email protected] ~]# sed -r ‘s/(^[a-Z0-9]+)([^a-Z0-9])([a-Z0-9]+)([^a-Z0-9])/\1\2\4/g‘ test
root::0:0:root:/root:/bin/bash
bin::1:1:bin:/bin:/sbin/nologin
nginx::991:547:Nginx web server:/var/lib/nginx:/sbin/nologin
abominable::1009:1010::/home/abominable:/bin/bash
abominate::1010:1011::/home/abominate:/bin/bash
anomie::1011:1012::/home/anomie:/bin/bash
atomize::1012:1013::/home/atomize:/bin/bash
Alex213sb::1013:1014::/home/Alex213sb:/bin/bash
Wpq2222b::1014:1015::/home/Wpq2222b:/bin/bash
yH438PIG::1015:1016::/home/yH438PIG:/bin/bash
egon666::1016:1017::/home/egon666:/bin/bash
egon::1017:1002::/home/egon:/bin/bash
[[email protected] ~]#

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

[[email protected] ~]# sed -r ‘s/([^a-Z0-9])([a-Z0-9]+)([^a-Z0-9])([a-Z0-9]+$)/\1\3\4/g‘ test
root:x:0:0:root:/root://bash
bin:x:1:1:bin:/bin://nologin
nginx:x:991:547:Nginx web server:/var/lib/nginx://nologin
abominable:x:1009:1010::/home/abominable://bash
abominate:x:1010:1011::/home/abominate://bash
anomie:x:1011:1012::/home/anomie://bash
atomize:x:1012:1013::/home/atomize://bash
Alex213sb:x:1013:1014::/home/Alex213sb://bash
Wpq2222b:x:1014:1015::/home/Wpq2222b://bash
yH438PIG:x:1015:1016::/home/yH438PIG://bash
egon666:x:1016:1017::/home/egon666://bash
egon:x:1017:1002::/home/egon://bash

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

[[email protected] ~]# sed -r ‘s/([^a-Z0-9])([a-Z0-9]+$)/\1/g‘ test
root:x:0:0:root:/root:/bin/
bin:x:1:1:bin:/bin:/sbin/
nginx:x:991:547:Nginx web server:/var/lib/nginx:/sbin/
abominable:x:1009:1010::/home/abominable:/bin/
abominate:x:1010:1011::/home/abominate:/bin/
anomie:x:1011:1012::/home/anomie:/bin/
atomize:x:1012:1013::/home/atomize:/bin/
Alex213sb:x:1013:1014::/home/Alex213sb:/bin/
Wpq2222b:x:1014:1015::/home/Wpq2222b:/bin/
yH438PIG:x:1015:1016::/home/yH438PIG:/bin/
egon666:x:1016:1017::/home/egon666:/bin/
egon:x:1017:1002::/home/egon:/bin/

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

[[email protected] ~]# sed -r ‘s/^(.)(.)/\2\1/‘ test
orot:x:0:0:root:/root:/bin/bash
ibn:x:1:1:bin:/bin:/sbin/nologin
gninx:x:991:547:Nginx web server:/var/lib/nginx:/sbin/nologin
baominable:x:1009:1010::/home/abominable:/bin/bash
baominate:x:1010:1011::/home/abominate:/bin/bash
naomie:x:1011:1012::/home/anomie:/bin/bash
taomize:x:1012:1013::/home/atomize:/bin/bash
lAex213sb:x:1013:1014::/home/Alex213sb:/bin/bash
pWq2222b:x:1014:1015::/home/Wpq2222b:/bin/bash
Hy438PIG:x:1015:1016::/home/yH438PIG:/bin/bash
geon666:x:1016:1017::/home/egon666:/bin/bash
geon:x:1017:1002::/home/egon:/bin/bash

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

[[email protected] ~]# sed -r ‘s/(^[a-Z])([a-Z0-9]+)([^a-Z0-9])([a-Z]+)/\4\2\3\1/‘ test
xoot:r:0:0:root:/root:/bin/bash
xin:b:1:1:bin:/bin:/sbin/nologin
xginx:n:991:547:Nginx web server:/var/lib/nginx:/sbin/nologin
xbominable:a:1009:1010::/home/abominable:/bin/bash
xbominate:a:1010:1011::/home/abominate:/bin/bash
xnomie:a:1011:1012::/home/anomie:/bin/bash
xtomize:a:1012:1013::/home/atomize:/bin/bash
xlex213sb:A:1013:1014::/home/Alex213sb:/bin/bash
xpq2222b:W:1014:1015::/home/Wpq2222b:/bin/bash
xH438PIG:y:1015:1016::/home/yH438PIG:/bin/bash
xgon666:e:1016:1017::/home/egon666:/bin/bash
xgon:e:1017:1002::/home/egon:/bin/bash

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

[[email protected] ~]# sed -r ‘s/(^[a-Z0-9]+)(.*)([^a-Z0-9])([a-Z]+$)/\4\2\3\1/‘ test
bash:x:0:0:root:/root:/bin/root
nologin:x:1:1:bin:/bin:/sbin/bin
nologin:x:991:547:Nginx web server:/var/lib/nginx:/sbin/nginx
bash:x:1009:1010::/home/abominable:/bin/abominable
bash:x:1010:1011::/home/abominate:/bin/abominate
bash:x:1011:1012::/home/anomie:/bin/anomie
bash:x:1012:1013::/home/atomize:/bin/atomize
bash:x:1013:1014::/home/Alex213sb:/bin/Alex213sb
bash:x:1014:1015::/home/Wpq2222b:/bin/Wpq2222b
bash:x:1015:1016::/home/yH438PIG:/bin/yH438PIG
bash:x:1016:1017::/home/egon666:/bin/egon666
bash:x:1017:1002::/home/egon:/bin/egon

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

[[email protected] ~]# sed -r ‘s/([0-9]+)//g‘ test
root:x:::root:/root:/bin/bash
bin:x:::bin:/bin:/sbin/nologin
nginx:x:::Nginx web server:/var/lib/nginx:/sbin/nologin
abominable:x::::/home/abominable:/bin/bash
abominate:x::::/home/abominate:/bin/bash
anomie:x::::/home/anomie:/bin/bash
atomize:x::::/home/atomize:/bin/bash
Alexsb:x::::/home/Alexsb:/bin/bash
Wpqb:x::::/home/Wpqb:/bin/bash
yHPIG:x::::/home/yHPIG:/bin/bash
egon:x::::/home/egon:/bin/bash
egon:x::::/home/egon:/bin/bash

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

[[email protected] ~]# cat test
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
nginx:x:991:547:Nginx web server:/var/lib/nginx:/sbin/nologin
abominable:x:1009:1010::/home/abominable:/bin/bash
abominate:x:1010:1011::/home/abominate:/bin/bash
anomie:x:1011:1012::/home/anomie:/bin/bash
atomize:x:1012:1013::/home/atomize:/bin/bash
Alex213sb:x:1013:1014::/home/Alex213sb:/bin/bash
Wpq2222b:x:1014:1015::/home/Wpq2222b:/bin/bash
yH438PIG:x:1015:1016::/home/yH438PIG:/bin/bash
egon666:x:1016:1017::/home/egon666:/bin/bash
        egon:x:1017:1002::/home/egon:/bin/bash
[[email protected] ~]#
[[email protected] ~]# sed -r ‘s/(^[[:blank:]]+)//g‘ test
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
nginx:x:991:547:Nginx web server:/var/lib/nginx:/sbin/nologin
abominable:x:1009:1010::/home/abominable:/bin/bash
abominate:x:1010:1011::/home/abominate:/bin/bash
anomie:x:1011:1012::/home/anomie:/bin/bash
atomize:x:1012:1013::/home/atomize:/bin/bash
Alex213sb:x:1013:1014::/home/Alex213sb:/bin/bash
Wpq2222b:x:1014:1015::/home/Wpq2222b:/bin/bash
yH438PIG:x:1015:1016::/home/yH438PIG:/bin/bash
egon666:x:1016:1017::/home/egon666:/bin/bash
egon:x:1017:1002::/home/egon:/bin/bash

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

[[email protected] ~]# sed -r ‘s/ /\t/g‘ test
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
nginx:x:991:547:Nginx   web     server:/var/lib/nginx:/sbin/nologin
abominable:x:1009:1010::/home/abominable:/bin/bash
abominate:x:1010:1011::/home/abominate:/bin/bash
anomie:x:1011:1012::/home/anomie:/bin/bash
atomize:x:1012:1013::/home/atomize:/bin/bash
Alex213sb:x:1013:1014::/home/Alex213sb:/bin/bash
Wpq2222b:x:1014:1015::/home/Wpq2222b:/bin/bash
yH438PIG:x:1015:1016::/home/yH438PIG:/bin/bash
egon666:x:1016:1017::/home/egon666:/bin/bash
                        egon:x:1017:1002::/home/egon:/bin/bash

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

[[email protected] ~]# sed -r ‘s/[A-Z]/(&)/g‘ test
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
nginx:x:991:547:(N)ginx web server:/var/lib/nginx:/sbin/nologin
abominable:x:1009:1010::/home/abominable:/bin/bash
abominate:x:1010:1011::/home/abominate:/bin/bash
anomie:x:1011:1012::/home/anomie:/bin/bash
atomize:x:1012:1013::/home/atomize:/bin/bash
(A)lex213sb:x:1013:1014::/home/(A)lex213sb:/bin/bash
(W)pq2222b:x:1014:1015::/home/(W)pq2222b:/bin/bash
y(H)438(P)(I)(G):x:1015:1016::/home/y(H)438(P)(I)(G):/bin/bash
egon666:x:1016:1017::/home/egon666:/bin/bash
        egon:x:1017:1002::/home/egon:/bin/bash

15,打印每行3次。

[[email protected] ~]# sed -r ‘p;p‘ test
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
nginx:x:991:547:Nginx web server:/var/lib/nginx:/sbin/nologin
nginx:x:991:547:Nginx web server:/var/lib/nginx:/sbin/nologin
nginx:x:991:547:Nginx web server:/var/lib/nginx:/sbin/nologin
abominable:x:1009:1010::/home/abominable:/bin/bash
abominable:x:1009:1010::/home/abominable:/bin/bash
abominable:x:1009:1010::/home/abominable:/bin/bash
abominate:x:1010:1011::/home/abominate:/bin/bash
abominate:x:1010:1011::/home/abominate:/bin/bash
abominate:x:1010:1011::/home/abominate:/bin/bash
anomie:x:1011:1012::/home/anomie:/bin/bash
anomie:x:1011:1012::/home/anomie:/bin/bash
anomie:x:1011:1012::/home/anomie:/bin/bash
atomize:x:1012:1013::/home/atomize:/bin/bash
atomize:x:1012:1013::/home/atomize:/bin/bash
atomize:x:1012:1013::/home/atomize:/bin/bash
Alex213sb:x:1013:1014::/home/Alex213sb:/bin/bash
Alex213sb:x:1013:1014::/home/Alex213sb:/bin/bash
Alex213sb:x:1013:1014::/home/Alex213sb:/bin/bash
Wpq2222b:x:1014:1015::/home/Wpq2222b:/bin/bash
Wpq2222b:x:1014:1015::/home/Wpq2222b:/bin/bash
Wpq2222b:x:1014:1015::/home/Wpq2222b:/bin/bash
yH438PIG:x:1015:1016::/home/yH438PIG:/bin/bash
yH438PIG:x:1015:1016::/home/yH438PIG:/bin/bash
yH438PIG:x:1015:1016::/home/yH438PIG:/bin/bash
egon666:x:1016:1017::/home/egon666:/bin/bash
egon666:x:1016:1017::/home/egon666:/bin/bash
egon666:x:1016:1017::/home/egon666:/bin/bash
egon:x:1017:1002::/home/egon:/bin/bash
egon:x:1017:1002::/home/egon:/bin/bash
egon:x:1017:1002::/home/egon:/bin/bash

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

[[email protected] ~]# sed -r ‘s/(^[a-Z0-9]+)([^a-Z])(.*)/\1/‘ test
root
bin
nginx
abominable
abominate
anomie
atomize
Alex213sb
Wpq2222b
yH438PIG
egon666
egon

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

[[email protected] ~]# sed -r ‘s/^([a-Z0-9]+)([^a-Z])([a-Z0-9]+)([^a-Z])([a-Z0-9]+)([^a-z])(.*)/\1\5/‘ test
root0
bin1
nginx991
abominable1009
abominate1010
anomie1011
atomize1012
Alex213sb1013
Wpq2222b1014
yH438PIG1015
egon6661016
egon1017

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

参考链接:http://www.cnblogs.com/linhaifeng/p/6596660.html

时间: 2024-08-11 23:05:11

Shell正则表达式和文本处理工具(一)的相关文章

正则表达式和文本搜索工具grep

正则表达式是由字面文本和具有特殊意义的符号组成的.我们可以根据具体需求,使用它们构造出合适的正则表达式来匹配文本.它是一种匹配文本的通用语言.正则表达式是模式匹配技术的核心,借助合适的正则表达式,可以生成我们所需的各类输出结果,例如过滤.剥离.替换.搜索等. 正则表达式的基本组成部分 ^ #行起始标记(使用cat -a显示空格,行首,行尾等标记.) #示例 ^It 匹配以It起始的行 $ #行尾标记 #示例 It$ 匹配以It结尾的行 . #匹配任意一个字符 #示例:Hack.匹配Hackl和H

详解正则表达式以及文本处理工具—grep、egrep的用法和特性

一.grep (1)grep简介 grep:全称是Global search REgular expression and Print out the line,全局搜索正则表达式并输出合适的行. grep是一种强大的文本搜索工具,根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行.(只对文本进行搜索处理) Unix的grep家族包含grep.egrep和fgrep. (2)grep的用法 语法格式:grep [option]... 'PATTERN' FILE... 选

Shell第二篇:正则表达式和文本处理工具

一 什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 生活中处处都是正则:     比如我们描述:4条腿      你可能会想到的是四条腿的动物或者桌子,椅子等     继续描述:4条腿,活的           就只剩下四条腿的动物这一类了 在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,下面我们就为大家介绍三种文本处理工具/命令:grep.sed.awk,它们三者均可以解释正

正则表达式和文本处理工具

一 什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 生活中处处都是正则:     比如我们描述:4条腿      你可能会想到的是四条腿的动物或者桌子,椅子等     继续描述:4条腿,活的           就只剩下四条腿的动物这一类了 在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,下面我们就为大家介绍三种文本处理工具/命令:grep.sed.awk,它们三者均可以解释正

基本正则表达式和文本处理工具之grep、egrep和fgrep

Grep(global search regular expression and print out the line全局搜索正则表达式并把行打印出来),是一种强大的文本搜索工具,egrep和fgrep的命令跟grep只有很少的差别,linux使用的是GNU版本的grep,功能非常强大,可以通过-G,-E,-F命令选项来使用egrep和fgrep的功能,grep的工作方式为在一个或多个文件中搜索字符串模板,如果模板包括空格则必须被引用,模板后的所有字符串被看做文件名,搜索的结果被送到屏幕,不影

使用正则表达式配合文本搜索工具Grep以及Egrep快速搜索文本

正则表达式: 计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 正则表达式由两类组成: 基本正则表达式与扩展正则表达式 基本正则表达式: 字符匹配 .:匹配单个字符 []:匹配指定集合中的任意单个字符 [:digit:]:所有数字(0-9) [:lower:]:所有小写字母(a-z) [:upper:]:所有大写字母(A-Z) [:space:]:空白符 [:punct:]:特殊字

shell之三大文本处理工具grep、sed及awk

grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更强大而已,且已独立成一种语言来介绍. grep:文本过滤器,如果仅仅是过滤文本,可使用grep,其效率要比其他的高很多: sed:Stream EDitor,流编辑器,默认只处理模式空间,不处理原数据,如果你处理的数据是针对行进行处理的,可以使用sed: awk:报告生成器,格式化以后显示.如果对处

shell编程之文本小工具

一.文本处理工具1.grep工具2.cut工具3.sort工具4.uniq工具5.tee工具6.diff工具7.paste工具二.bash的特性1.命令和文件自动补全2 .常用的通配符3.bash中的引号 一.文本处理工具 1. grep工具 grep是==行==过滤工具:用于根据关键字进行行过滤 语法和选项 语法: # grep [选项] '关键字' 文件名 常见选项: OPTIONS: -i: 不区分大小写 -v: 查找不包含指定内容的行,反向选择 -w: 按单词搜索 -o: 打印匹配关键字

正则表达式和grep文本搜索工具

正则表达式和文本搜索工具介绍 正则表达式:如果想搜索/etc/passwd文件中以root开头的行,对与人来说很容易理解,但是对与计算机来说就无法理解,这个时候就需要使用正则表达式来表达过滤条件了,让用户实现对文本的智能搜索.正则表达式就是由元字符及正常字符所书写的模式,其中的元字符不表示字符本身的意义,而是用于表达控制或通配等功能. 正则表达式的特点是: 1. 灵活性.逻辑性和功能性非常的强: 2. 可以迅速地用极简单的方式达到字符串的复杂控制. grep:支持正则表达式,是一个文本搜索工具,