欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

shell三劍客之a(chǎn)wk(包括sort排序和uniq工具)

shell三劍客之a(chǎn)wk(包括sort排序和uniq工具)

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、網(wǎng)站制作、呼瑪網(wǎng)絡(luò)推廣、微信平臺(tái)小程序開發(fā)、呼瑪網(wǎng)絡(luò)營銷、呼瑪企業(yè)策劃、呼瑪品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供呼瑪建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:aaarwkj.com

shell三劍客之a(chǎn)wk

在 Linux/UNIX 系統(tǒng)中,awk 是一個(gè)功能強(qiáng)大的編輯工具,逐行讀取輸入文本,并根據(jù)指定的匹配模式進(jìn)行查找,對(duì)符合條件的內(nèi)容進(jìn)行格式化輸出或者過濾處理,可以在無交互的情況下實(shí)現(xiàn)相當(dāng)復(fù)雜的文本操作,被廣泛應(yīng)用于 Shell 腳本,完成各種自動(dòng)化配置任務(wù)。

awk 所使用的命令格式如下所示,其中,單引號(hào)加上大括號(hào)“{}”用于設(shè)置對(duì)數(shù)據(jù)進(jìn)行的處理動(dòng)作。awk 可以直接處理目標(biāo)文件,也可以通過“-f”讀取腳本對(duì)目標(biāo)文件進(jìn)行處理。

awk工具命令格式

awk 選項(xiàng) '模式或條件 {編輯指令}' 文件 1 文件 2 ?   //過濾并輸出文件符條件的內(nèi)容
awk -f 腳本文件 文件 1 文件 2 ? //從腳本中調(diào)用編輯指令,過濾并輸出內(nèi)容
7

awk 比較傾向于將一行分成多個(gè)“字段”然后再進(jìn)行處理,且默認(rèn)情況下字段的分隔符為空格或者 tab 鍵。awk 執(zhí)行結(jié)果可以通過 print 的功能將字段數(shù)據(jù)打印顯示。在使用 awk 命令的過程中,可以使用邏輯操作符“&&”,表示“與”, “||”表示“或”,“!”表示“非”;還可以進(jìn)行簡(jiǎn)單的數(shù)學(xué)運(yùn)算,如+、-、*、/、%、^分別 表示加、減、乘、除、取余和乘方。
找出/etc/passwd 的用戶名、用戶 ID、組 ID 等列, 執(zhí)行以下 awk 命令即可。


[root@localhost ~]# awk -F : '{print $1,$3,$4}' /etc/passwd
root 0 0
bin 1 1
daemon 2 2
adm 3 4
lp 4 7
sync 5 0
shutdown 6 0
halt 7 0
mail 8 12
operator 11 0
games 12 100
ftp 14 50
nobody 99 99
systemd-network 192 192
dbus 81 81
polkitd 999 998
abrt 173 173
libstoragemgmt 998 996
rpc 32 32
colord 997 995
saslauth 996 76
rtkit 172 172
pulse 171 171
chrony 995 991
rpcuser 29 29
nfsnobody 65534 65534
ntp 38 38
tss 59 59
usbmuxd 113 113
geoclue 994 989
qemu 107 107
radvd 75 75
setroubleshoot 993 988
sssd 992 987
gdm 42 42
gnome-initial-setup 991 986
sshd 74 74
avahi 70 70
postfix 89 89
tcpdump 72 72
chen 1000 1000

awk 從輸入文件或者標(biāo)準(zhǔn)輸入中讀入信息,與 sed 一樣,信息的讀入也是逐行讀取的。不同的是 awk 將文本文件中的一行視為一個(gè)記錄,而將一行中的某一部分(列)作為記錄中的一個(gè)字段(域)。為了操作這些不同的字段,awk 借用 shell 中類似于位置變量的方法, 用$1、$2、$3?順序地表示行(記錄)中的不同字段。另外 awk 用$0 表示整個(gè)行(記錄)。不同的字段之間是通過指定的字符分隔。awk 默認(rèn)的分隔符是空格。awk 允許在命令行中用“-F 分隔符”的形式來指定分隔符。

awk 包含幾個(gè)特殊的內(nèi)建變量(可直接用)如下所示:
(1)FS:指定每行文本的字段分隔符,默認(rèn)為空格或制表位。
(2)NF:當(dāng)前處理的行的字段個(gè)數(shù)。
(3)NR:當(dāng)前處理的行的行號(hào)(序數(shù))。
(4)$0:當(dāng)前處理的行的整行內(nèi)容。
(6)FILENAME:被處理的文件名。
(7)RS9:數(shù)據(jù)記錄分隔,默認(rèn)為\n,即每行為一條記錄。

一.awk用法

(1)輸出所有內(nèi)容,等同于 cat chen.txt,

[root@localhost ~]# awk '{print $0}' chen.txt
[root@localhost ~]# awk '{print}' chen.txt  //這條命令和上面一條是一樣的效果
#version=DEVEL
#System authorization information
aulth --enableshadow --passalgo=sha512
#Use CDROM installation media
cdlrom.
thethethe.

(2)輸出第 1~3 行內(nèi)容

[root@localhost ~]# awk 'NR==1,NR==3{print}' chen.txt   //這條命令和下面命令是一樣的效果
[root@localhost ~]# awk '(NR>=1)&&(NR<=3){print}' chen.txt

#version=DEVEL
#System authorization information
aulth --enableshadow --passalgo=sha512

(3)輸出所有奇數(shù)行的內(nèi)容

[root@localhost ~]# awk '(NR%2)==1{print}' chen.txt 
Use CDROM installation media
cdrom.
thethethe.
THE
THEASDHAS
 Use graphical install.
graphical.
best
test
ASSDJFXYxyzC
AxyzxyzxyzC
keyboard --vckeymap=cn --xlayouts='cn'
 System language

(4)輸出所有偶數(shù)行的內(nèi)容

[root@localhost ~]# awk '(NR%2)==0{print}' chen.txt
 Use graphical install.
graphical.
best
test
ASSDJFXYxyzC
AxyzxyzxyzC
keyboard --vckeymap=cn --xlayouts='cn'
 System language
lang zh_CN.UTF-8

 Network information
network  --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate
network  --hostname=localhost.localdomain

 Root password
rootpw --iscrypted $6$L.egxzosoP/0k9Nj$wna7vPXZjeH0jFcNZUymYKF8ySXq5HxQuvxTFxIpEAAxuDj7MQJtXBds5E0LxAftI1H5JbJuYpN44d5n6t1AZ.
 System services

(5)輸出所有偶數(shù)行的內(nèi)容

awk '/^The/{print}' chen.txt
 THE
THEASDHAS

(6)輸出以limit.結(jié)尾的行

[root@localhost ~]# awk '/limit.$/{print}' chen.txt
Use graphical install limit.

(7)統(tǒng)計(jì)以/bin/bash 結(jié)尾的行數(shù),等同于greo -c “/bin/bash” chen.txt

[root@localhost ~]# awk 'BEGIN {x=0} ; /\/bin\/bash$/{x++};END{print x}' /etc/passwd

(8)統(tǒng)計(jì)以the分隔的文本段落數(shù)

[root@localhost ~]# awk 'BEGIN {RS="the"};END{print NR}' chen.txt

(二)按字段輸出文本

[root@localhost ~]# awk -F : '{print $3}' /etc/passwd
0
1
2
3
4
5
6
7
8
9
10
11

(1)輸出每行中的第1,3個(gè)字段

[root@localhost ~]# awk -F : '{print $1,$3}' /etc/passwd
root 0
bin 1
daemon 2
adm 3
lp 4
sync 5
shutdown 6
halt 7
mail 8
operator 11
games 12
ftp 14
nobody 99
systemd-network 192

(2)輸出密碼為“*”的用戶的shadow 記錄

[root@localhost ~]# awk -F : '$2== "*"{print}' /etc/shadow
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
lp:*:17110:0:99999:7:::
sync:*:17110:0:99999:7:::
shutdown:*:17110:0:99999:7:::
halt:*:17110:0:99999:7:::
mail:*:17110:0:99999:7:::
operator:*:17110:0:99999:7:::
games:*:17110:0:99999:7:::

(3)輸出以冒號(hào)分隔且第 7 個(gè)字段中包含/bash 的行的第 1 個(gè)字段

[root@localhost ~]# awk '($1~"nfs")&&(NF=7){print $1,$2}' /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS

(4)輸出第 7 個(gè)字段既不為/bin/bash 也不為/sbin/nologin 的所有行

[root@localhost ~]# awk -F : '($7!="/bin/bash")&&($7!="/sbin/nologin")' /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt

(二)通過管道,雙引號(hào)調(diào)用shell命令

調(diào)用wc -l 命令統(tǒng)計(jì)使用bash 的用戶個(gè)數(shù),等同于 grep -c “bash$” /etc/passwd

[root@localhost ~]# awk -F : '/bash$/{print | "wc -l"}' /etc/passwd
2

(1)調(diào)用w 命令,并用來統(tǒng)計(jì)在線用戶數(shù)

[root@localhost ~]# awk 'BEGIN {while ("w" | getline) n++ ;{print n-2}}'
2

(2)調(diào)用hostname,并輸出當(dāng)前的主機(jī)名

[root@localhost ~]# awk 'BEGIN {"hostname" | getline ; print $0}'
localhost.localdomain

三.sort 工具

sort 是一個(gè)以行為單位對(duì)文件內(nèi)容進(jìn)行排序的工具,也可以根據(jù)不同的數(shù)據(jù)類型來排序。例如數(shù)據(jù)和字符的牌局就不一樣。sort 命令的語法為“sort [選項(xiàng)] 參數(shù)”,其中常用的選項(xiàng)包括以下幾種。
(1)-f:忽略大小寫;
(2)-b:忽略每行前面的空格;
(3)-M:按照月份進(jìn)行排序;
(4)-n:按照數(shù)字進(jìn)行排序;
(5)-r:反向排序;
(6)-u:等同于 uniq,表示相同的數(shù)據(jù)僅顯示一行;
(7)-t:指定分隔符,默認(rèn)使用[Tab]鍵分隔;
(8)-o <輸出文件>:將排序后的結(jié)果轉(zhuǎn)存至指定文件;
(9)-k:指定排序區(qū)域。

1:將/etc/passwd 文件中的賬號(hào)進(jìn)行排序。

排序規(guī)則是開頭按字母排序,如果開頭都是一樣的就按照第二個(gè)字母從小到大

[root@localhost ~]# sort /etc/passwd
abrt:x:173:173::/etc/abrt:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
chen:x:1000:1000:chen:/home/chen:/bin/bash
chrony:x:995:991::/var/lib/chrony:/sbin/nologin
colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin

(1)將/etc/passwd 文件中第三列進(jìn)行反向排序

[root@localhost ~]# sort -t : -rk 3 /etc/passwd
nobody:x:99:99:Nobody:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:996:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin
saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin
chrony:x:995:991::/var/lib/chrony:/sbin/nologin
geoclue:x:994:989:User for geoclue:/var/lib/geoclue:/sbin/nologin
setroubleshoot:x:993:988::/var/lib/setroubleshoot:/sbin/nologin
sssd:x:992:987:User for sssd:/:/sbin/nologin
gnome-initial-setup:x:991:986::/run/gnome-initial-setup/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin

(2)將/etc/passwd 文件中第三列進(jìn)行排序,并將輸出內(nèi)容保存至user.txt 文件中

[root@localhost ~]# sort -t : -k 3 /etc/passwd -o chench.txt
[root@localhost ~]# cat chench.txt
root:x:0:0:root:/root:/bin/bash
chen:x:1000:1000:chen:/home/chen:/bin/bash
qemu:x:107:107:qemu user:/:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbi

(四)uniq工具

Uniq 工具在 Linux 系統(tǒng)中通常與 sort 命令結(jié)合使用,用于報(bào)告或者忽略文件中的重復(fù)行。具體的命令語法格式為:uniq [選項(xiàng)] 參數(shù)。其中常用選項(xiàng)包括以下幾種。
(1)-c:進(jìn)行計(jì)數(shù);
(2)-d:僅顯示重復(fù)行;
(3)-u:僅顯示出現(xiàn)一次的行;

1:刪除 a 文件中的重復(fù)行。

[root@localhost ~]# cat a.txt

centos7 6.2
centos7 6.2
centos7 6.2
centos7 6.2
centos7 6.2
centos7 6.6
centos7 6.2
centos7 6.2
centos7 6.3
centos7 6.5
linux 1
linux 2
linux 3
linux 4
linux 5
linux 6
[root@localhost ~]# uniq a.txt

centos7 6.2
centos7 6.6
centos7 6.2
centos7 6.3
centos7 6.5
linux 1
linux 2
linux 3
linux 4
linux 5
linux 6

uniq工具刪除重復(fù)但是只刪除連續(xù)重復(fù)的

(2)刪除 a 文件中的重復(fù)行,并在行首顯示該行重復(fù)出現(xiàn)的次數(shù)

[root@localhost ~]# uniq -c a.txt
      1 
      5 centos7 6.2
      1 centos7 6.6
      2 centos7 6.2
      1 centos7 6.3
      1 centos7 6.5
      1 linux 1
      1 linux 2
      1 linux 3
      1 linux 4
      1 linux 5
      1 linux 6
      1 

(3)查找 testfile 文件中的重復(fù)行。

[root@localhost ~]# uniq -d a.txt
centos7 6.2
centos7 6.2

謝謝收看

網(wǎng)頁名稱:shell三劍客之a(chǎn)wk(包括sort排序和uniq工具)
標(biāo)題路徑:http://aaarwkj.com/article26/jpogjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、定制網(wǎng)站網(wǎng)站營銷、標(biāo)簽優(yōu)化網(wǎng)站導(dǎo)航、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
国产欧美日韩另类在线播放| 欧美日本国产老熟女视频| 日本国产一区二区在线观看| 国产精品一久久香蕉产线看 | 精品人妻一区二区四区| 国产精品—色哟哟视频| 亚洲码与欧洲码一二三| 成人偷拍自拍在线视频| 久久香蕉国产线看观看亚洲| 美女网站色在线免费观看午夜精品 | 国产丝袜美腿视频亚洲综合| 男女视频午夜刺激一区二区| 欧美高清一区二区在线观看| 国产欧美一区二区另类精品| 国产亚洲一区二区三区日韩| 日本欧美三级高潮受不了| 成人爱爱视频在线免费观看| 国产午夜福利av在线麻豆| 在线播放欧美视频91| 国产区一区二区三在线播放| 成人免费在线视频不卡| 欧美日韩国产另类久久| 免费观看中国性生活片| 亚洲黄色av在线免费观看| 欧美午夜福利视频电影| 日韩精品成人区中文字幕| 亚洲精品麻豆一区二区| 人妻熟女在线一区二区| 欧美十八一区二区三区| 成年人午夜看片免费网站| 国产成人大片中文字幕在线| 亚洲av日韩av高潮| 日本午夜节目在线观看| 欧美一区二区欧美精品| 国产精品免费视频一区二区三区| 欧美亚洲少妇人妻系列| 午夜丁香婷婷爽少妇av| 亚洲综合久久五月天| 欧美精品日韩精品一区二区| 秋霞三级在线免费观看| 亚洲字幕中文在线乱码mv|