个人学习笔记总结
[root@a ~]# awk 'END{print NR}' c.txt #没错,这就是文件的行数,当然,这种统计方法不是linux下最快的,但也是一种思路
3
[root@a ~]# wc -l c.txt #这种统计方法是linux下最快的
3 c.txt
[root@a ~]# head -3 /etc/passwd
root:a:0:0:root:/root:/bin/bash
bin:b:1:1:bin:/bin:/sbin/nologin
daemon:c:2:2:daemon:/sbin:/sbin/nologin
[root@a ~]# head -3 /etc/passwd | awk -F':' '{print $1}'
root
bin
daemon
[root@a ~]# head -3 /etc/passwd | awk -F':' '{print $2}'
a
b
c
[root@a ~]#head -3 /etc/passwd | awk -F':' '{print $1}{print $2}' #有两个print,可以看到第二列放到了第一列之后换行显示
root
a
bin
b
daemon
c
[root@a ~]# head -3 /etc/passwd | awk -F':' '{print $1,"\n",$2}' #在print中将$1和$2之间加一个\n,第二列前的空白字符也被输出了,两者还是有所区别
root
a
bin
b
daemon
c
[root@a ~]# head -5 /etc/passwd | awk -F: '{if(NR>2&&NR<5)print NR,$0}' #awk条件语句,打印整行信息并显示打印行号
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
awk -F':' '$1~/root/' 1.txt
root:x:0:0:root:/root:/bin/bash
111root222:x:0:0:root:/root:/sbin/nologin
awk -F':' '$1~/root/{OFS="#";print $1,$2,$3}' 1.txt
root#x#0
111root222#x#0
awk -F':' '$1=="root"{print$1,$2,$3}' 1.txt
root x 0
awk -F':' '$1=="root" || NR>=30{print $1,$2}' 1.txt
root x
rpc x
111
awk -F':' 'NF>3&&NR<3{print $1,$2,$3}' 1.txt
root x 0
111root222 x 0
~为模糊匹配,==表示精确匹配
[root@a ~]# awk -F':' 'NF>3&&NR>16{print NR,"\t",$3,$5}' /etc/passwd
17 89
18 74 Privilege-separated SSH
打印符合条件的内容并显示行号
sed -r 's/([^:]+)(:.*:)([^:]+)/\3\2\1/' /etc/passwd | head -2
/bin/bash:x:0:0:0:root:/root:root
/sbin/nologin:x:1:1:bin:/bin:bin
sed -r 支持扩展功能,([^:]+)中的[^:]表示有一个或者多个非冒号的字符,()表示作为一个整体,在这里指匹配第一段;(:.*:)表示贪婪匹配,即只要以第一个为冒号,一直匹配到最好一个冒号结束。
[root@a ~]# date -d "-1 day" +"%F %T"
2019-04-28 09:44:13
"-1 day" 表示昨天的时间和日期,-d 表示用字符串描述的显示时间,而不是“现在”
[root@a ~]# date -d "+1 month" +"%F %T"
2019-05-29 09:48:03
"+1 month"表示下个月的日期和时间
[root@a ~]# date +%F #显示日期
2019-04-29
[root@a ~]# date +%T #显示时间
09:50:17
[root@a ~]# date +%Y-%m-%d #显示日期
2019-04-29
[root@a ~]# date +"%Y-%m-%d %H:%M:%S" #显示日期和时间
2019-04-29 09:51:51
[root@a ~]# date +%w #显示周几
1
[root@a ~]# date +%W #显示第几周
17
[root@a ~]# echo "365/7"| bc #计算一年有多少周
52