三剑客

通配符

通配符

选项 解释
. #当前目录,任意一个字符(正则)
.. #当前目录的上一级目录
! #find与awk中表示取反,linux命令行表示历史记录
? #任意一个字符,通配符
# #表示注释
* #任意0个或多个字符(文本)(通配符)
| #管道,或者(正则)上一条命令的输出,作为下一条命令参数
$ #以。。。结尾(正则),$LANG $取变量内容
^ #以.......开头(正则)
~ #当前用户的家目录
`` (反引号) $() #引用命令的结果
&& #并且 同时成立 && 表示并且,前一个命令成立(成功)再执行后一个命令
|| 表示上一条命令执行失败后,才执行下一条命令
; 分号,分隔多个命令 pwd;pwd;pwd ;hostname ;
[] #表示一个范围,集合 [abcdefg] [a-g] (正则,通配符)
{} #产生一个序列,(通配符)
> #输出重定向 会清空原来的内容 然后在向文件里面追加内容
>> #追加输出重定向 追加到文件的最后一行
< #输入重定向 tr xargs
<< #cat 用来给文件追加多行文本
- cd - ; su -
" 双引号
/ 根 路径分隔符
\ 转义符号 \班长 ===> 学生

三剑客老三 sed

常用参数及说明

选项 解释
-r 扩展正则
-n 取消默认输出
-p 打印
-i 保存 直接修改
-i.bak 备份原文件后修改原文件
s 替换命令标志
g 行内全局替换
s///g 对全局指定的内容进行替换, 匹配替换
d 删除
\b \b 精确查找 例如:sed -nr '/\bbin\b/p' 1.txt
c 替换本行
a 在目标下行插入
i 在目标啊上行插入
, 连续 例如3,5 是3行到5行
// 模糊查找,双斜杠表示里面是一个整体
取反
$ 尾行
|

正则使用

与 grep一样,sed 在文件中查找模式时也可以使用正则表达式(RE)和各种元字符。
正则表达式是括在斜杠间的模式,用于查找和替换,以下是sed支持的元字符。
使用基本元字符集 ^, $, ., *, [], [^], < >, (), {}
使用扩展元字符集 ?, +, { }, |, ( )
使用扩展元字符的方式 + sed -r

p打印 输出行

默认输出所有加上找出的内容

[root@zhaoshuang ~/123]#sed '5p' 3.txt 
     1  nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
     2  apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     4  zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
     5  zhao:x:1002:1002::/home/zhao:/bin/bash
     5  zhao:x:1002:1002::/home/zhao:/bin/bash
     6  ii:x:1222:1222::/home/ii:/bin/bash
     7  sha:x:7777:1002::/tmp/sha:/sbin/nologin
     8  zhao1:x:7778:7778::/home/zhao1:/bin/bash
     9  zhao2:x:7779:7779::/home/zhao2:/bin/bash
    10  zhao3:x:7780:7780::/home/zhao3:/bin/bash
-n 取消默认输出

有n 必须有p

[root@zhaoshuang ~/123]#sed -n '5p' 3.txt 
     5  zhao:x:1002:1002::/home/zhao:/bin/bash
,逗号是连续的意思

(3,5)第三行到第五行‘不是3和5行’

[root@zhaoshuang ~/123]#sed -n '3,5p' 3.txt 
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     4  zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
     5  zhao:x:1002:1002::/home/zhao:/bin/bash
-i 直接修改对应文件, 而不是输出到终端
[root@zhaoshuang ~/123]#sed -i  '3,5p' 3.txt 
[root@zhaoshuang ~/123]#cat 3.txt
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     4  zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
-i.bak 备份原文件后修改原文件
[root@zhaoshuang ~/123]#ls
3.txt  6.txt
[root@zhaoshuang ~/123]#sed -i.bak '3,5p' 3.txt 
[root@zhaoshuang ~/123]#ls
3.txt  3.txt.bak  6.txt
//模糊查找

你想找谁就不是谁保护起来

[root@zhaoshuang ~/123]#sed -n '/zhao/p' 3.txt 
     4  zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
     5  zhao:x:1002:1002::/home/zhao:/bin/bash
     8  zhao1:x:7778:7778::/home/zhao1:/bin/bash
     9  zhao2:x:7779:7779::/home/zhao2:/bin/bash
    10  zhao3:x:7780:7780::/home/zhao3:/bin/bash
\b \b 精确查找

只查找 zhao 的行

[root@zhaoshuang ~/123]#sed -n '/\bzhao\b/p' 3.txt 
     5  zhao:x:1002:1002::/home/zhao:/bin/bash

// 和, 配合使用

匹配apache 到zhao1 的行输出

[root@zhaoshuang ~/123]#sed -n '/apache/,/zhao1/p' 3.txt 
     2  apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     4  zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
     5  zhao:x:1002:1002::/home/zhao:/bin/bash
     6  ii:x:1222:1222::/home/ii:/bin/bash
     7  sha:x:7777:1002::/tmp/sha:/sbin/nologin
     8  zhao1:x:7778:7778::/home/zhao1:/bin/bash
-r 支持扩展元字符(扩展正则)

使用扩展元字符集 ?, +, { }, |, ( )
过滤出包含nginx和zhao1的行

[root@zhaoshuang ~/123]#sed -nr '/nginx|zhao1/p' 3.txt
     1  nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
     8  zhao1:x:7778:7778::/home/zhao1:/bin/bash
$尾行 配合$使用

过滤出末尾的行

[root@zhaoshuang ~/123]#sed -n '$p' 3.txt
    10  zhao3:x:7780:7780::/home/zhao3:/bin/bash
! 取反

当前文件夹下文件名不包含zhao的文件

[root@zhaoshuang ~/123]#sed -n '/zhao/!p' 3.txt
     1  nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
     2  apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     6  ii:x:1222:1222::/home/ii:/bin/bash
     7  sha:x:7777:1002::/tmp/sha:/sbin/nologin
i 在当前行之前插入一行或多行
[root@zhaoshuang ~/123]#sed  '3i zhaoshuang123' 3.txt
     1  nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
     2  apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
zhaoshuang123
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     4  zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
     5  zhao:x:1002:1002::/home/zhao:/bin/bash
     6  ii:x:1222:1222::/home/ii:/bin/bash
     7  sha:x:7777:1002::/tmp/sha:/sbin/nologin
     8  zhao1:x:7778:7778::/home/zhao1:/bin/bash
     9  zhao2:x:7779:7779::/home/zhao2:/bin/bash
    10  zhao3:x:7780:7780::/home/zhao3:/bin/bash
a 在当前行后添加一行或多行
     1  nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
     2  apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     4  zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
     5  zhao:x:1002:1002::/home/zhao:/bin/bash
linux
     6  ii:x:1222:1222::/home/ii:/bin/bash
     7  sha:x:7777:1002::/tmp/sha:/sbin/nologin
     8  zhao1:x:7778:7778::/home/zhao1:/bin/bash
     9  zhao2:x:7779:7779::/home/zhao2:/bin/bash
    10  zhao3:x:7780:7780::/home/zhao3:/bin/bash

a 不加行 将在每行下面都添加一行或多行

[root@zhaoshuang ~/123]#sed 'a linux' 3.txt
     1  nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
linux
     2  apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
linux
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
linux
     4  zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
linux
     5  zhao:x:1002:1002::/home/zhao:/bin/bash
linux
     6  ii:x:1222:1222::/home/ii:/bin/bash
linux
     7  sha:x:7777:1002::/tmp/sha:/sbin/nologin
linux
     8  zhao1:x:7778:7778::/home/zhao1:/bin/bash
linux
     9  zhao2:x:7779:7779::/home/zhao2:/bin/bash
linux
    10  zhao3:x:7780:7780::/home/zhao3:/bin/bash
linux
c 在当前行进行替换修改

把第五行整行都替换成zhaoshuang005

[root@zhaoshuang ~/123]#sed '5c zhaoshuang005' 3.txt
     1  nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
     2  apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     4  zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
zhaoshuang005
     6  ii:x:1222:1222::/home/ii:/bin/bash
     7  sha:x:7777:1002::/tmp/sha:/sbin/nologin
     8  zhao1:x:7778:7778::/home/zhao1:/bin/bash
     9  zhao2:x:7779:7779::/home/zhao2:/bin/bash
    10  zhao3:x:7780:7780::/home/zhao3:/bin/bash
d 在当前行进行删除操作
[root@zhaoshuang ~/123]#sed  '3d' 3.txt
     1  nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
     2  apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
     4  zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
     5  zhao:x:1002:1002::/home/zhao:/bin/bash
     6  ii:x:1222:1222::/home/ii:/bin/bash
     7  sha:x:7777:1002::/tmp/sha:/sbin/nologin
     8  zhao1:x:7778:7778::/home/zhao1:/bin/bash
     9  zhao2:x:7779:7779::/home/zhao2:/bin/bash
    10  zhao3:x:7780:7780::/home/zhao3:/bin/bash
[root@zhaoshuang ~/123]#sed '3,8d' 3.txt
     1  nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
     2  apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
     9  zhao2:x:7779:7779::/home/zhao2:/bin/bash
    10  zhao3:x:7780:7780::/home/zhao3:/bin/bash
s///g对全局指定的内容进行替换, 匹配替换

s 替换命令标志
g 行内全局替换
把每行的第一个zhao替换成wang

[root@zhaoshuang ~/123]#sed 's/zhao/wang/' 3.txt
     1  nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
     2  apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     4  wangshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
     5  wang:x:1002:1002::/home/zhao:/bin/bash
     6  ii:x:1222:1222::/home/ii:/bin/bash
     7  sha:x:7777:1002::/tmp/sha:/sbin/nologin
     8  wang1:x:7778:7778::/home/zhao1:/bin/bash
     9  wang2:x:7779:7779::/home/zhao2:/bin/bash
    10  wang3:x:7780:7780::/home/zhao3:/bin/bash

把每行所有的zhao替换成wang

[root@zhaoshuang ~/123]#sed 's/zhao/wang/g' 3.txt
     1  nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
     2  apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
     3  mongod:x:995:993:mongod:/var/lib/mongo:/bin/false
     4  wangshuang:x:1001:1001::/home/wangshuang:/bin/bash
     5  wang:x:1002:1002::/home/wang:/bin/bash
     6  ii:x:1222:1222::/home/ii:/bin/bash
     7  sha:x:7777:1002::/tmp/sha:/sbin/nologin
     8  wang1:x:7778:7778::/home/wang1:/bin/bash
     9  wang2:x:7779:7779::/home/wang2:/bin/bash
    10  wang3:x:7780:7780::/home/wang3:/bin/bash

(.*) \1 后向引用

\1 对应 第一个(.*) \2 对应第二个(.*)

[root@zhaoshuang ~/123]#ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:97:ba:27 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.11/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe97:ba27/64 scope link 
       valid_lft forever preferred_lft forever

过滤出IP地址

[root@zhaoshuang ~/123]#ip a|sed -n '9p'|sed -r 's/^.*et (.*)\/24 brd (.*) sco.*/\1 \2/g'
10.0.0.11 10.0.0.255

三剑客老二 grep

常用参数及说明

选项 解释
-n 显示行符
-v 反转查找
-i 不区分大小写过滤文件
-E 多条件过滤
-w 匹配整个单词
-A 匹配后,再向下打印
-B 匹配后,再向上打印
-C 匹配后,再向上和向下打印
过滤常用的符号

过滤文件常用的符号

选项 解释
. 表示所有
* 反转查找
.* 表示匹配所有
^ 表示以什么开头
$ 表示以什么结尾
^$ 表示空行

过滤文中含有root的相关的行
[root@zhaoshuang ~]#grep "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@zhaoshuang ~]#
过滤以root开头的行
[root@zhaoshuang ~]#grep "^root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@zhaoshuang ~]#

过滤以bash结尾的行

[root@zhaoshuang ~]#grep "bash$" /etc/passwd
root:x:0:0:root:/root:/bin/bash
zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
zhao:x:1002:1002::/home/zhao:/bin/bash
ii:x:1222:1222::/home/ii:/bin/bash
[root@zhaoshuang ~]#
显示行符
[root@zhaoshuang ~]#grep -n "bash" /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
30:zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
31:zhao:x:1002:1002::/home/zhao:/bin/bash
32:ii:x:1222:1222::/home/ii:/bin/bash
[root@zhaoshuang ~]#

####使用grep匹配后,再向上打印2行
````[root@zhaoshuang ~/zhaoshuang]#grep -B 2 "3" 1.txt 
001
002
003
--
001
002
003

使用grep匹配后,再向下打印2行

[root@zhaoshuang ~/zhaoshuang]#grep -A 2 "3" 1.txt 
003
004
005
--
003
004
005
[root@zhaoshuang ~/zhaoshuang]#

使用grep匹配后,再向上和向下打印

[root@zhaoshuang ~/zhaoshuang]#grep -n -C 2 "3" 1.txt 
1-001
2-002
3:003
4-004
5-005
--
8-001
9-002
10:003
11-004
12-005
[root@zhaoshuang ~/zhaoshuang]#
筛选出不含“2”的行
[root@zhaoshuang ~/zhaoshuang]#grep -v "2" 2.txt 
111
333
444
[root@zhaoshuang ~/zhaoshuang]#
不区分大小写过滤出含"fb"的行
[root@zhaoshuang ~/zhaoshuang]#grep -i "B" 3.txt 
bbb
[root@zhaoshuang ~/zhaoshuang]#
不区分大小写的打印出以bash结尾或者包含rsync的行
[root@zhaoshuang ~/zhaoshuang]#egrep -i "rsync|BASH$" /etc/passwd
root:x:0:0:root:/root:/bin/bash
rsync:x:1000:1000::/home/rsync:/sbin/nologin
zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
zhao:x:1002:1002::/home/zhao:/bin/bash
ii:x:1222:1222::/home/ii:/bin/bash
[root@zhaoshuang ~/zhaoshuang]#
^ 匹配行首

grep中,^则是匹配字符串的开始

[root@zhaoshuang ~/123]#grep '^nginx' 3.txt
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
$ 匹配行尾

grep中,$则是匹配字符串的结尾

[root@zhaoshuang ~/123]#grep 'nologin$' 3.txt
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
sha:x:7777:1002::/tmp/sha:/sbin/nologin
^$ 表示空行
[root@zhaoshuang ~/123]#cat 2.txt 
123

123
234
//
\\\

      
258
3

1
    
[root@zhaoshuang ~/123]#grep '^$' 2.txt 



[root@zhaoshuang ~/123]#
. 匹配除换行符\n之外的任意单个字符
[root@zhaoshuang ~/123]#grep '.' 2.txt 
123
123
234
//
\\\
258
3
1
.$找出任意字符结尾的行
[root@zhaoshuang ~/123]#grep '.$' 2.txt 
123
123
234
//
\\\
258
3
1
* 匹配前一个字符连续出现0次或者多次
image.png
.* 匹配所有包括空格
[root@zhaoshuang ~/123]#grep '.*' 2.txt 
123

123
234
//
\\\


258
3

111
[ ] 匹配包含在[字符]之中的任意一个字符

需要注意的是中括号[]默认不匹配空白行
中括号和.默认不匹配空行

[root@zhaoshuang ~/123]#grep '[12]' 2.txt 
123
123
234
258
111
[^ ] 匹配[^字符]之外的任意一个字符,取反
image.png
[ - ] 匹配[]中指定范围内的任意一个字符
image.png

扩展正则表达式的应用

注:支持扩展正则要使用 egrep** 或者 grep –E

+ 匹配之前的项1次或者多次
image.png
+和*号的区别是

*过滤出所有的1或2 +过滤出12

image.png
[] 与 + 结合使用 过滤 连续的内容
image.png
| 扩展正则表达式 或者的意思

| 交替匹配|两边的任意一项ab(c|d)匹配abc或abd

[root@zhaoshuang ~/123]#egrep '123|258' 2.txt 
123
123
258
{}

{n,} 之前的项至少需要匹配n次
{n,m} 指定之前的项至少匹配n次,最多匹配m次,n<=m
{n,m}前一个字符至少连续出现n次 最多出现m次


image.png
表示一个整体或者反向引用/后向引用

() 匹配表达式,创建一个用于匹配的子串


image.png
-r 可以过滤出目录下所有文件的内容,包括下一级目录里文件的内容

在/root/ 目录下过滤出所有含jintian的文件

root@zhaoshuang /]#grep -r 'jintian' /root/*
/root/123/7.txt:jintian
/root/123/7.txt:jintian
/root/2.txt:jintian

AWK 三剑客老大

awk常用选项及说明

选项 说明
-F 指定分隔符
NF 行 NF==3
$ 列 $2
print 打印 print $2
NR行 {print$1}列
image.png
Awk内部变量

{print }’ 函数打印分割后的字段
'{print "内容", $0,"内容"}' 添加需要的内容到固定内容的前面或者后面

[root@zhaoshuang /]#echo 'zhaoshuang'|awk '{print 123,$1}'
123 zhaoshuang
‘{print length}’统计字符串的长度
[root@zhaoshuang /]#echo zhaoshuang|awk '{print length}'
10
列:取出所有内容:$0保存当前记录的内容*
[root@zhaoshuang ~/123]#awk '{print $0}' 8.txt 
a b c d e f g
a b c d e f g
a b c d e f g
a b c d e f g
a b c d e f g
a b c d e f g
[root@zhaoshuang ~/123]#awk '{print $1}' 8.txt 
a
a
a
a
a
a
[root@zhaoshuang ~/123]#

NF统计每行有多少列*
[root@zhaoshuang ~/123]#awk '{print NF}' 8.txt 
6
6
6
6
6
6
6
[root@zhaoshuang ~/123]#
取出最后一列: awk '{print $NF}' file
[root@zhaoshuang ~/123]#awk '{print $NF}' 8.txt 
g
g
g
g
g
g
统计有多少列并取出最后一列awk '{print NF,$NF}' file
[root@zhaoshuang ~/123]#awk '{print NF,$NF}' 8.txt 
7 g
7 g
7 g
7 g
7 g
7 g
取出倒数第二列:awk '{print $(NF-1)}' file
[root@zhaoshuang ~/123]#awk '{print $(NF-1)}\' 8.txt 
f
f
f
f
f
f
行:NR记录输入总的编号(行号)
[root@zhaoshuang ~/123]#awk '{print NR,$0}' 8.txt 
1 a b c d e f g
2 a b c d e f g
3 a b c d e f g
4 a b c d e f g
5 a b c d e f g
6 a b c d e f g
取出前三行:awk 'NR<=3' file
[root@zhaoshuang ~/123]#awk 'NR<=3' 9.txt 
     1  a b c d e f g
     2  a b c d e f g
     3  a b c d e f g
取出第二行: awk 'NR==2' file

[root@zhaoshuang ~/123]#awk 'NR==2' 9.txt
2 a b c d e f g

取出第二行的第三列的内容: awk 'NR==2{print$3}' file
[root@zhaoshuang ~/123]#awk 'NR==2{print $3}' 9.txt 
b

取出第二行的第二列和第四列

[root@zhaoshuang ~/123]#awk 'NR==2{print $2"\n"$4}' 9.txt 
a
c
//双斜杠模糊查找,使用正则的方式

!// 取反
取出除了3的行

[root@zhaoshuang ~/123]#awk '!/3/' 1.txt 
111
222
444
555
666
777
888
999
//取出包含指定的行

取出包含zhao 的行

[root@zhaoshuang ~/123]#awk '/zhao/' 3.txt
zhaoshuang:x:1001:1001::/home/zhaoshuang:/bin/bash
zhao:x:1002:1002::/home/zhao:/bin/bash
zhao1:x:7778:7778::/home/zhao1:/bin/bash
zhao2:x:7779:7779::/home/zhao2:/bin/bash
zhao3:x:7780:7780::/home/zhao3:/bin/bash

/^/ 取出以指定内容开头的行

取出以nginx 开头的行

[root@zhaoshuang ~/123]#awk '/^nginx/' 3.txt
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
/$/ 取出以指定内容结尾的行

取出以nologin 结尾的行

[root@zhaoshuang ~/123]#awk '/nologin$/' 3.txt
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
sha:x:7777:1002::/tmp/sha:/sbin/nologin
$NF~/^/ 取出以什么开头的最后一列所在的行

~ : 匹配的意思
取出以单词no开头的最后一列所在的行

[root@zhaoshuang ~/123]#awk -F '[/]' '$NF~/^no/' 3.txt
nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
sha:x:7777:1002::/tmp/sha:/sbin/nologin
取出/etc/passwd 中第3列中以数字1-5开头的行
[root@zhaoshuang ~/123]#awk -F:  '$3~/^[2-4]/' /etc/passwd
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
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin

取出设备的ip地址

[root@zhaoshuang ~/zhaoshuang]#ip a|grep global|awk -F "[ /]+" 'NR==1{print $3}'
10.0.0.11
[root@zhaoshuang ~/zhaoshuang]#

源文件

[root@zhaoshuang ~]#cat 2.txt 
赵爽:
【淘宝网】验证码2496648645.您已成功订购rdy旗舰店提供的老顾客回馈活动线上下单线下领取创意小礼品WF,有效期2019-08-16~2019-08-18,如有疑问,请联系卖家.查看券详情:http://m.tb.cn/a.1sRa [风险提示:提供验证码即视为确认收货!]
【淘宝网】验证码2496637971.您已成功订购rdy旗舰店提供的老顾客回馈活动线上下单线下领取创意小礼品WF,有效期2019-08-16~2019-08-18,如有疑问,请联系卖家.查看券详情:http://m.tb.cn/a.1sRa [风险提示:提供验证码即视为确认收货!]

赵爽:
【淘宝网】验证码2496333196.您已成功订购rdy旗舰店提供的老顾客回馈活动线上下单线下领取创意小礼品WF,有效期2019-08-16~2019-08-18,如有疑问,请联系卖家.查看券详情:http://m.tb.cn/a.1sRa [风险提示:提供验证码即视为确认收货!]
【淘宝网】验证码2496516020.您已成功订购rdy旗舰店提供的老顾客回馈活动线上下单线下领取创意小礼品WF,有效期2019-08-16~2019-08-18,如有疑问,请联系卖家.查看券详情:http://m.tb.cn/a.1sRa [风险提示:提供验证码即视为确认收货!]
【淘宝网】验证码2496504517.您已成功订购rdy旗舰店提供的老顾客回馈活动线上下单线下领取创意小礼品WF,有效期2019-08-16~2019-08-18,如有疑问,请联系卖家.查看券详情:http://m.tb.cn/a.1sRa [风险提示:提供验证码即视为确认收货!]
【淘宝网】验证码2496110288.您已成功订购rdy旗舰店提供的老顾客回馈活动线上下单线下领取创意小礼品WF,有效期2019-08-16~2019-08-18,如有疑问,请联系卖家.查看券详情:http://m.tb.cn/a.1sRa [风险提示:提供验证码即视为确认收货!]
【淘宝网】验证码2496226250.您已成功订购rdy旗舰店提供的老顾客回馈活动线上下单线下领取创意小礼品WF,有效期2019-08-16~2019-08-18,如有疑问,请联系卖家.查看券详情:http://m.tb.cn/a.1sRa [风险提示:提供验证码即视为确认收货!]
【淘宝网】验证码2496149619.您已成功订购rdy旗舰店提供的老顾客回馈活动线上下单线下领取创意小礼品WF,有效期2019-08-16~2019-08-18,如有疑问,请联系卖家.查看券详情:http://m.tb.cn/a.1sRa [风险提示:提供验证码即视为确认收货!]

【淘宝网】验证码2496654133.您已成功订购rdy旗舰店提供的老顾客回馈活动线上下单线下领取创意小礼品WF,有效期2019-08-16~2019-08-18,如有疑问,请联系卖家.查看券详情:http://m.tb.cn/a.1sRa [风险提示:提供验证码即视为确认收货!]
【淘宝网】验证码2496646819.您已成功订购rdy旗舰店提供的老顾客回馈活动线上下单线下领取创意小礼品WF,有效期2019-08-16~2019-08-18,如有疑问,请联系卖家.查看券详情:http://m.tb.cn/a.1sRa [风险提示:提供验证码即视为确认收货!]

[root@zhaoshuang ~]#

取出验证码

[root@zhaoshuang ~]#awk -F "[】.]+" '{print $2}' 2.txt |grep -v '^$'
验证码2496648645
验证码2496637971
验证码2496333196
验证码2496516020
验证码2496504517
验证码2496110288
验证码2496226250
验证码2496149619
验证码2496654133
验证码2496646819
[root@zhaoshuang ~]#

你可能感兴趣的:(三剑客)