linux正则表达式awk讲解
来源:互联网 发布:图论算法 python 编辑:程序博客网 时间:2024/04/30 06:21
1
2
3
4
5
6
7
8
9
[root@yonglinux ~]
# head -n2 passwd |awk -F: '{print $1}'
root
bin
[root@yonglinux ~]
# head -n2 passwd |awk -F: '{print $0}'
root:x:0:0:root:
/root
:
/bin/bash
bin:x:1:1:bin:
/bin
:
/sbin/nologin
[root@yonglinux ~]
# head -n2 passwd |awk -F: '{print $1,$3,$7}'
root 0
/bin/bash
bin 1
/sbin/nologin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@localhost ~]
# awk -F: '{print $3,$4}' 1.txt |head -5
0 0
1 1
2 2
3 4
4 7
[root@localhost ~]
# awk -F: '{print $3":"$4}' 1.txt |head -5
0:0
1:1
2:2
3:4
4:7
[root@localhost ~]
# awk -F: 'OFS="#"{print $3,$4}' 1.txt |head -5
0
#0
1
#1
2
#2
3
#4
4
#7
1
2
3
[root@yonglinux ~]
# head -n2 passwd |awk -F: '{print $1"#""@"$3"#"$7}'
root
#@0#/bin/bash
bin
#@1#/sbin/nologin
1
2
3
4
[root@yonglinux ~]
# awk -F: '$1~/me/' passwd
games:x:12:100:games:
/usr/games
:
/sbin/nologin
[root@yonglinux ~]
# awk -F: '$1~/user/' passwd
user1:x:600:501::
/home/user1
:
/bin/bash
1
2
3
4
5
6
[root@yonglinux ~]
# awk -F: '/root/ {print $1,$3} /user/ {print $1,$3}' passwd
root 0
operator 11
ftp
14
saslauth 499
user1 600
1
2
3
4
[root@yonglinux ~]
# awk -F: '$3=="0"' passwd
root:x:0:0:root:
/root
:
/bin/bash
[root@yonglinux ~]
# awk -F: '$3==10' passwd
uucp:x:10:14:uucp:
/var/spool/uucp
:
/sbin/nologin
1
2
3
4
[root@yonglinux ~]
# awk -F: '$3==10 {print $7}' passwd
/sbin/nologin
[root@yonglinux ~]
# awk -F: '$3=="600"' passwd
user1:x:600:501::
/home/user1
:
/bin/bash
1
2
3
4
5
6
7
8
9
10
[root@yonglinux ~]
# awk -F: '$3>"500"' passwd | sort -t: -k 3 -n
shutdown
:x:6:0:
shutdown
:
/sbin
:
/sbin/shutdown
halt:x:7:0:halt:
/sbin
:
/sbin/halt
mail:x:8:12:mail:
/var/spool/mail
:
/sbin/nologin
vcsa:x:69:69:virtual console memory owner:
/dev
:
/sbin/nologin
sshd:x:74:74:privilege-separated
ssh
:
/var/empty/sshd
:
/sbin/nologin
dbus:x:81:81:system message bus:/:
/sbin/nologin
postfix:x:89:89::
/var/spool/postfix
:
/sbin/nologin
nobody:x:99:99:nobody:/:
/sbin/nologin
user1:x:600:501::
/home/user1
:
/bin/bash
1
2
3
4
[root@yonglinux ~]
# awk -F: '$3>500' passwd | sort -t: -k 3 -n
user1:x:600:501::
/home/user1
:
/bin/bash
[root@yonglinux ~]
# awk -F: '$3>'500'' passwd | sort -t: -k 3 -n
user1:x:600:501::
/home/user1
:
/bin/bash
1
2
3
4
5
6
7
[root@yonglinux ~]
# awk -F: '$7!="/sbin/nologin"' passwd
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
user1:x:600:501::
/home/user1
:
/bin/bash
mysql:x:27:27:MySQL Server:
/var/lib/mysql
:
/bin/bash
1
2
3
4
[root@yonglinux ~]
# awk -F: '$3>"5" && $3<"7"' passwd
shutdown
:x:6:0:
shutdown
:
/sbin
:
/sbin/shutdown
vcsa:x:69:69:virtual console memory owner:
/dev
:
/sbin/nologin
user1:x:600:501::
/home/user1
:
/bin/bash
1
2
[root@yonglinux ~]
# awk -F: '$3>$4 && $7=="/bin/bash"' passwd
user1:x:600:501::
/home/user1
:
/bin/bash
1
2
3
4
5
6
7
8
9
10
11
[root@yonglinux ~]
# awk -F: '$3<$4 || $7=="/bin/bash"' passwd
root:x:0:0:root:
/root
:
/bin/bash
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
uucp:x:10:14:uucp:
/var/spool/uucp
:
/sbin/nologin
games:x:12:100:games:
/usr/games
:
/sbin/nologin
gopher:x:13:30:gopher:
/var/gopher
:
/sbin/nologin
ftp
:x:14:50:
ftp
user:
/var/ftp
:
/sbin/nologin
user1:x:600:501::
/home/user1
:
/bin/bash
mysql:x:27:27:mysql server:
/var/lib/mysql
:
/bin/bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@yonglinux ~]
# head -5 passwd |awk -F: '{print NR":"NF}'
1:7
2:7
3:7
4:7
5:7
[root@yonglinux ~]
# head -5 passwd |awk -F: '{print NF}'
7
7
7
7
7
[root@yonglinux ~]
# head -5 passwd |awk -F: '{print NR}'
1
2
3
4
5
[root@yonglinux ~]
# head -5 passwd |awk -F: '{print $NF}'
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
NF 表示是多少段,而$NF是最后一段的值, 而NR则是行号。
5、awk中的数学运算
awk还可以对各个段的值进行数学运算:
1
2
[root@yonglinux ~]
# awk -F: '{(tot=tot+$3)};END {print tot};' passwd
1720
1
2
[root@yonglinux ~]
# awk -F: '{if ($1=="root") print $0}' passwd
root:x:0:0:root:
/root
:
/bin/bash
1
2
[root@yonglinux ~]
# sum=0;for i in `awk -F: '{print $3}' passwd`;do sum=$[($sum+$i)];done;echo $sum
1720
0 0
- linux正则表达式awk讲解
- linux正则表达式awk讲解
- Linux正则表达式awk讲解
- linux awk 正则表达式
- Linux正则表达式 awk
- Linux awk正则表达式简介
- Linux 正则表达式 vi, grep, sed, awk
- 正则表达式awk
- 正则表达式,awk实例
- awk 正则表达式
- 正则表达式、sed、awk
- awk练习-正则表达式
- awk 正则表达式
- awk与正则表达式
- awk正则表达式
- awk 正则表达式
- 13. awk正则表达式
- 正则表达式--------awk
- Network - 计算机网络复习总结
- C++Primer学习笔记(11)泛型算法
- jquery动态添加列表后样式失效解决方式
- Tomcat启动失败的问题
- XIB && NIB && IB 三者之间的关系
- linux正则表达式awk讲解
- 用数组和链表分别实现栈类stack,队queue
- android开发中结束所有的activity
- Partition List -- leetcod
- 一些数据结构高(hao)逼(wu)格(liao)的实现方法
- 单例模式
- Android常用适配器Adapter
- P122 20
- if中处填写什么使得结果为ab