码迷,mamicode.com
首页 > 编程语言 > 详细

正则 grep 管道符号 “|” 特殊符号“||”“&&” wc 命令 分隔符号cut 排序sort 去重复uniq 符号 ` `的使用

时间:2020-02-21 09:39:09      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:level   表达   bash   image   ase   code   ack   inf   keep   

grep的参数与作用

技术图片

 内容补充:

^:瞄定行的开始,如‘^#‘ 匹配所有以#开头的行。

$:瞄定行的结束,如‘grep$‘ 匹配所有以grep结尾的行。

. :匹配一个非换行符的字符,如‘gr.p‘后接一个任意字符,然后是p。

* :匹配零个或多个先前字符 如‘*grep‘匹配所有一个或多个空格后紧跟grep的行 ;.* 一起用代表任意字符。

[ ]:匹配一个指定范围内的字符,如‘[Gg]rep‘匹配Grep和grep。[^]:匹配一个不在指定范围内的字符,如‘[^A-FH-Z]rep‘匹配不包含A-F H-Z一个字母的开头,紧跟rep的行。^[A-Za-z_] : 以字母开始,无论大小都可以;[^A-Za-z_ ] :非字母就可以;[A-Za-z0-9_] :可以是字母数、字下、划线 。

\< : 瞄定单词的开始,如‘\<grep‘匹配包含以 grep 开头单词的行。

\> : 瞄定单词的结束,如‘grep\>‘匹配包含以 grep 结尾单词的行。

x\{m\} :重复字符 x,m次,如‘0\{5\}‘匹配包含5个0的行。

x\{m,\} : 重复字符 x,至少m次,如‘0\{5\}‘匹配至少有5个0的行。

x\{m,n} :重复字符x,至少m次,不多于n次,如‘0\{5,8}‘ 匹配5-8个0的行。

\w:匹配文字和数字字符,也就是[A-Za-z0-9],如‘G\w*p‘匹配以G后跟零个或多个文字或数字字符,然后是p。

\W: \w 的反置形式,匹配一个或多个非单词字符。

\b : 单词锁定符,如‘\bgrep\b‘只匹配grep。


 

1.实例:过滤路径 /etc/passwd的 /sbin/nologin(不可登录用户)

命令:

grep "/sbin/nologin" /etc/passwd

输出

[root@localhost /]# grep "/sbin/nologin" /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

2.实例:将不可登录用户反向输出至nologin.log   使用参数 -v

命令:

grep -v "/sbin/nologin" /etc/passwd > nologin.log

输出:

[root@localhost /]# grep -v "/sbin/nologin" /etc/passwd > nologin.log
[root@localhost /]# cat nologin.log
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
litao:x:1000:1000::/home/litao:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash

3.实例:过滤掉所有空行和以#开头的行,在etc/yum.conf 文件当中

命令:

grep -v "^#" /etc/yum.conf | grep -v "^$"

输出:

[root@localhost /]# grep -v "^#" /etc/yum.conf  | grep -v "^$"
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

 说明:在正则表达式中,^表示行的开始,$表示行的结尾,空行可以用^$表示。

WC命令参数

技术图片

 

 重定向作用

技术图片

 

和管道符号" | "相关的命令

技术图片

 

 分隔符号cut举例子:

技术图片

 

 

sort 命令使用举例子

技术图片

 

uniq命令使用举例子,配合sort使用。先排序后去重复。直接使用uniq不会去重复

技术图片

 

特殊符号 "| |" "&&"的运用,两者符号可用于判断。可看截图实例

1.当条件A和B都存在,运行A || B,会发现A执行成功后,B不再继续。

技术图片

 

 2.当条件A不存在,条件B存在。运行A || B, A执行出错,在 "| |"符号作用下继续执行条件B

技术图片

 

 3.当条件A和B都存在,运行A && B,会发现A执行成功后,条件B一样回显信息在屏幕上。

技术图片

 

 4.当条件A不存在,条件B存在。在执行A条件错误,B 不再继续执行。

技术图片

 `  `符号举例子(反引号)

将引号中的字符当成shell命令执行 将变量date +%Y-%m-%d-%H-%M 引用到date  

技术图片

 

正则 grep 管道符号 “|” 特殊符号“||”“&&” wc 命令 分隔符号cut 排序sort 去重复uniq 符号 ` `的使用

标签:level   表达   bash   image   ase   code   ack   inf   keep   

原文地址:https://www.cnblogs.com/lovelitao/p/12132246.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!