通配符
通配符
选项 | 解释 |
---|---|
. | #当前目录,任意一个字符(正则) |
.. | #当前目录的上一级目录 |
! | #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次或者多次
.* 匹配所有包括空格
[root@zhaoshuang ~/123]#grep '.*' 2.txt
123
123
234
//
\\\
258
3
111
[ ] 匹配包含在[字符]之中的任意一个字符
需要注意的是中括号[]默认不匹配空白行
中括号和.默认不匹配空行
[root@zhaoshuang ~/123]#grep '[12]' 2.txt
123
123
234
258
111
[^ ] 匹配[^字符]之外的任意一个字符,取反
[ - ] 匹配[]中指定范围内的任意一个字符
扩展正则表达式的应用
注:支持扩展正则要使用 egrep** 或者 grep –E
+ 匹配之前的项1次或者多次
+和*号的区别是
*过滤出所有的1或2 +过滤出12
[] 与 + 结合使用 过滤 连续的内容
| 扩展正则表达式 或者的意思
| 交替匹配|两边的任意一项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次
表示一个整体或者反向引用/后向引用
() 匹配表达式,创建一个用于匹配的子串
-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 $2 |
NR行 {print$1}列
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 ~]#