AWK

awk介紹

  1. awk概述
  • awk是一種==編程語言==,主要用于在linux/unix下對==文本和數(shù)據(jù)==進(jìn)行處理,是linux/unix下的一個(gè)工具。數(shù)據(jù)可以來自標(biāo)準(zhǔn)輸入、一個(gè)或多個(gè)文件,或其它命令的輸出。

  • awk的處理文本和數(shù)據(jù)的方式:==逐行掃描==文件,默認(rèn)從第一行到最后一行,尋找匹配的==特定模式==的行,并在這些行上進(jìn)行你想要的操作。

  • awk分別代表其作者姓氏的第一個(gè)字母。因?yàn)樗淖髡呤侨齻€(gè)人,分別是Alfred Aho、Brian Kernighan、Peter Weinberger。

  • gawk是awk的GNU版本,它提供了Bell實(shí)驗(yàn)室和GNU的一些擴(kuò)展。

  • 下面介紹的awk是以GNU的gawk為例的,在linux系統(tǒng)中已把a(bǔ)wk鏈接到gawk,所以下面全部以awk進(jìn)行介紹。


  1. awk用途

  2. awk==用來處理文件和數(shù)據(jù)==的,是類unix下的一個(gè)工具,也是一種編程語言

  3. 可以用來==統(tǒng)計(jì)數(shù)據(jù)==,比如網(wǎng)站的訪問量,訪問的IP量等等

  4. 支持條件判斷,支持for和while循環(huán)


二、awk的用法

  1. ==做為單條命令使用==

語法結(jié)構(gòu)

awk 選項(xiàng) '命令部分' 文件名


特別說明:
引用shell變量需用雙引號引起

常用選項(xiàng)介紹

  • -F 定義字段分割符號,默認(rèn)的分隔符是空格
  • -v 定義變量并賦值

命名部分說明

  • 正則表達(dá)式,地址定位

    '/root/{awk語句}' sed中: '/root/p'
    'NR==1,NR==5{awk語句}' sed中: '1,5p'
    '/root/,/ftp/{awk語句}' sed中:'/root/,/ftp/p'

  • {awk語句1==;==awk語句2==;==...}

    '{print 0;print1}' sed中:'p'
    'NR==5{print $0}' sed中:'5p'
    注:awk命令語句間用分號間隔

  • BEGIN...END....

    'BEGIN{awk語句};{處理中};END{awk語句}'
    'BEGIN{awk語句};{處理中}'
    '{處理中};END{awk語句}'


  1. 腳本模式使用

㈠ 腳本編寫

#!/bin/awk -f       定義魔法字符
以下是awk引號里的命令清單,不要用引號保護(hù)命令,多個(gè)命令用分號間隔
BEGIN{FS=":"}
NR==1,NR==3{print $1"\t"$NF}
...

㈡ 腳本執(zhí)行

方法1:
awk 選項(xiàng) -f awk的腳本文件  要處理的文本文件
awk -f awk.sh filename

sed -f sed.sh -i filename

方法2:
./awk的腳本文件(或者絕對路徑)  要處理的文本文件
./awk.sh filename

./sed.sh filename

三、 awk內(nèi)部相關(guān)變量

變量 變量說明 備注
==0== 當(dāng)前處理行的所有記錄 ==1,2,3...n== 文件中每行以==間隔符號==分割的不同字段 awk -F: '{print1,3}' ==NF== 當(dāng)前記錄的字段數(shù)(列數(shù)) awk -F: '{print NF}' ==NF== 最后一列 (NF-1)表示倒數(shù)第二列 ==FNR/NR== 行號 ==FS== 定義間隔符 'BEGIN{FS=":"};{print1,3}' ==OFS== 定義輸出字段分隔符,==默認(rèn)空格== 'BEGIN{OFS="\t"};print1,3}' RS 輸入記錄分割符,默認(rèn)換行 'BEGIN{RS="\t"};{print0}'
ORS 輸出記錄分割符,默認(rèn)換行 'BEGIN{ORS="\n\n"};{print 1,3}'
FILENAME 當(dāng)前輸入的文件名


1、==常用內(nèi)置變量舉例==

# awk -F: '{print $1,$(NF-1)}' 1.txt
# awk -F: '{print $1,$(NF-1),$NF,NF}' 1.txt
# awk '/root/{print $0}' 1.txt
# awk '/root/' 1.txt
# awk -F: '/root/{print $1,$NF}' 1.txt 
root /bin/bash
# awk -F: '/root/{print $0}' 1.txt      
root:x:0:0:root:/root:/bin/bash
# awk 'NR==1,NR==5' 1.txt 
# awk 'NR==1,NR==5{print $0}' 1.txt
# awk 'NR==1,NR==5;/^root/{print $0}' 1.txt 
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
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

2、內(nèi)置變量分隔符舉例

FS和OFS:
# awk 'BEGIN{FS=":"};/^root/,/^lp/{print $1,$NF}' 1.txt
# awk -F: 'BEGIN{OFS="\t\t"};/^root/,/^lp/{print $1,$NF}' 1.txt        
root            /bin/bash
bin             /sbin/nologin
daemon          /sbin/nologin
adm             /sbin/nologin
lp              /sbin/nologin
# awk -F: 'BEGIN{OFS="@@@"};/^root/,/^lp/{print $1,$NF}' 1.txt     
root@@@/bin/bash
bin@@@/sbin/nologin
daemon@@@/sbin/nologin
adm@@@/sbin/nologin
lp@@@/sbin/nologin
[root@server shell07]# 

RS和ORS:
修改源文件前2行增加制表符和內(nèi)容:
vim 1.txt
root:x:0:0:root:/root:/bin/bash hello   world
bin:x:1:1:bin:/bin:/sbin/nologin        test1   test2

# awk 'BEGIN{RS="\t"};{print $0}' 1.txt
# awk 'BEGIN{ORS="\t"};{print $0}' 1.txt

四、 awk工作原理

awk -F: '{print 1,3}' /etc/passwd

  1. awk使用一行作為輸入,并將這一行賦給內(nèi)部變量$0,每一行也可稱為一個(gè)記錄,以換行符(RS)結(jié)束
  2. 每行被間隔符==:==(默認(rèn)為空格或制表符)分解成字段(或域),每個(gè)字段存儲(chǔ)在已編號的變量中,從$1開始
    問:awk如何知道用空格來分隔字段的呢?
    答:因?yàn)橛幸粋€(gè)內(nèi)部變量==FS==來確定字段分隔符。初始時(shí),F(xiàn)S賦為空格
  3. awk使用print函數(shù)打印字段,打印出來的字段會(huì)以==空格分隔==,因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=1%2C" alt="1," mathimg="1">3之間有一個(gè)逗號。逗號比較特殊,它映射為另一個(gè)內(nèi)部變量,稱為==輸出字段分隔符==OFS,OFS默認(rèn)為空格
  4. awk處理完一行后,將從文件中獲取另一行,并將其存儲(chǔ)在$0中,覆蓋原來的內(nèi)容,然后將新的字符串分隔成字段并進(jìn)行處理。該過程將持續(xù)到所有行處理完畢

五、awk使用進(jìn)階

  1. 格式化輸出print和printf

    print函數(shù) 類似echo "hello world"

    date |awk '{print "Month: "2 "\nYear: "NF}'

    awk -F: '{print "username is: " 1 "\t uid is: "3}' /etc/passwd

printf函數(shù)        類似echo -n
# awk -F: '{printf "%-15s %-10s %-15s\n", $1,$2,$3}'  /etc/passwd
# awk -F: '{printf "|%15s| %10s| %15s|\n", $1,$2,$3}' /etc/passwd
# awk -F: '{printf "|%-15s| %-10s| %-15s|\n", $1,$2,$3}' /etc/passwd

awk 'BEGIN{FS=":"};{printf "%-15s %-15s %-15s\n",$1,$6,$NF}' a.txt

%s 字符類型  strings            %-20s
%d 數(shù)值類型 
占15字符
- 表示左對齊,默認(rèn)是右對齊
printf默認(rèn)不會(huì)在行尾自動(dòng)換行,加\n

  1. awk變量定義

    awk -v NUM=3 -F: '{ print $NUM }' /etc/passwd

    awk -v NUM=3 -F: '{ print NUM }' /etc/passwd

    awk -v num=1 'BEGIN{print num}'

    1

    awk -v num=1 'BEGIN{print $num}'

    注意:
    awk中調(diào)用定義的變量不需要加$


3. awk中BEGIN...END使用

①==BEGIN==:表示在==程序開始前==執(zhí)行

②==END== :表示所有文件==處理完后==執(zhí)行

③用法:'BEGIN{開始處理之前};{處理中};END{處理結(jié)束后}'

㈠ 舉例說明1

打印最后一列和倒數(shù)第二列(登錄shell和家目錄)

awk -F: 'BEGIN{ print "Login_shell\t\tLogin_home\n*******************"};{print $NF"\t\t"$(NF-1)};END{print "************************"}' 1.txt

awk 'BEGIN{ FS=":";print "Login_shell\tLogin_home\n*******************"};{print $NF"\t"$(NF-1)};END{print "************************"}' 1.txt

Login_shell     Login_home
************************
/bin/bash       /root
/sbin/nologin       /bin
/sbin/nologin       /sbin
/sbin/nologin       /var/adm
/sbin/nologin       /var/spool/lpd
/bin/bash       /home/redhat
/bin/bash       /home/user01
/sbin/nologin       /var/named
/bin/bash       /home/u01
/bin/bash       /home/YUNWEI
************************************

㈡ 舉例說明2

打印/etc/passwd里的用戶名、家目錄及登錄shell

u_name      h_dir       shell
***************************

***************************

awk -F: 'BEGIN{OFS="\t\t";print"u_name\t\th_dir\t\tshell\n***************************"};{printf "%-20s %-20s %-20s\n",$1,$(NF-1),$NF};END{print "****************************"}'


# awk -F: 'BEGIN{print "u_name\t\th_dir\t\tshell" RS "*****************"}  {printf "%-15s %-20s %-20s\n",$1,$(NF-1),$NF}END{print "***************************"}'  /etc/passwd

格式化輸出:
echo        print
echo -n printf

{printf "%-15s %-20s %-20s\n",$1,$(NF-1),$NF}

4. awk和正則的綜合運(yùn)用

圖片.png

舉例說明
從第一行開始匹配到以lp開頭行
awk -F: 'NR==1,/^lp/{print 0 }' passwd 從第一行到第5行 awk -F: 'NR==1,NR==5{print0 }' passwd
從以lp開頭的行匹配到第10行
awk -F: '/^lp/,NR==10{print 0 }' passwd 從以root開頭的行匹配到以lp開頭的行 awk -F: '/^root/,/^lp/{print0}' passwd
打印以root開頭或者以lp開頭的行
awk -F: '/^root/ || /^lp/{print 0}' passwd awk -F: '/^root/;/^lp/{print0}' passwd
顯示5-10行
awk -F':' 'NR>=5 && NR<=10 {print 0}' /etc/passwd awk -F: 'NR<10 && NR>5 {print0}' passwd


打印30-39行以bash結(jié)尾的內(nèi)容:
[root@MissHou shell06]# awk 'NR>=30 && NR<=39 && 0 ~ /bash/{print $0}' passwd
stu1:x:500:500::/home/stu1:/bin/bash
yunwei:x:501:501::/home/yunwei:/bin/bash
user01:x:502:502::/home/user01:/bin/bash
user02:x:503:503::/home/user02:/bin/bash
user03:x:504:504::/home/user03:/bin/bash

[root@MissHou shell06]# awk 'NR>=3 && NR<=8 && /bash$/' 1.txt
stu7:x:1007:1007::/rhome/stu7:/bin/bash
stu8:x:1008:1008::/rhome/stu8:/bin/bash
stu9:x:1009:1009::/rhome/stu9:/bin/bash


打印文件中1-5并且以root開頭的行
[root@MissHou shell06]# awk 'NR>=1 && NR<=5 && 0 ~ /^root/{print0}' 1.txt
root:x:0:0:root:/root:/bin/bash
[root@MissHou shell06]# awk 'NR>=1 && NR<=5 && 0 !~ /^root/{print0}' 1.txt
bin:x:1:1:bin:/bin:/sbin/nologin
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


理解;號和||的含義:
[root@MissHou shell06]# awk 'NR>=3 && NR<=8 || /bash/' 1.txt [root@MissHou shell06]# awk 'NR>=3 && NR<=8;/bash/' 1.txt


打印IP地址

ifconfig eth0|awk 'NR>1 {print 2}'|awk -F':' 'NR<2 {print2}'

ifconfig eth0|grep Bcast|awk -F':' '{print 2}'|awk '{print1}'

ifconfig eth0|grep Bcast|awk '{print 2}'|awk -F: '{print2}'

ifconfig eth0|awk NR==2|awk -F '[ :]+' '{print 4RS6RS$8}'

ifconfig eth0|awk -F"[ :]+" '/inet addr:/{print $4}'


顯示可以登錄操作系統(tǒng)的用戶所有信息 從第7列匹配以bash結(jié)尾,輸出整行(當(dāng)前行所有的列)

圖片.png

顯示可以登錄系統(tǒng)的用戶名

awk -F: '0 ~ /\/bin\/bash/{print1}' /etc/passwd

打印出系統(tǒng)中普通用戶的UID和用戶名

500 stu1
501 yunwei
502 user01
503 user02
504 user03

awk -F: 'BEGIN{print "UID\tUSERNAME"} {if(3>=500 &&3 !=65534 ) {print 3"\t"1} }' /etc/passwdUID USERNAME
awk -F: '{if(3 >= 500 &&3 != 65534) print 1,3}' a.txt
redhat 508
user01 509
u01 510
YUNWEI 511


awk的腳本編程
流程控制
if結(jié)構(gòu)
if語句:

if [ xxx ];then
xxx
fi

格式:
awk 選項(xiàng) '正則,地址定位{awk語句}' 文件名

{ if(表達(dá)式){語句1;語句2;...}}

awk -F: '{if(3>=500 &&3<=60000) {print 1,3} }' passwd

awk -F: '{if(3==0) {print1"是管理員"} }' passwd

root是管理員

awk 'BEGIN{if('$(id -u)'==0) {print "admin"} }'

admin

if...else結(jié)構(gòu)
if...else語句:
if [ xxx ];then
xxxxx

else
xxx
fi

格式:
{if(表達(dá)式){語句;語句;...}else{語句;語句;...}}

awk -F: '{ if(3>=500 &&3 != 65534) {print 1"是普通用戶"} else {print1,"不是普通用戶"}}' passwd

awk 'BEGIN{if( '(id -u)'>=500 && '(id -u)' !=65534 ) {print "是普通用戶"} else {print "不是普通用戶"}}'

if...elif...else結(jié)構(gòu)
if [xxxx];then
xxxx
elif [xxx];then
xxx
....
else
...
fi

if...else if...else語句:

格式:
{ if(表達(dá)式1){語句;語句;...}else if(表達(dá)式2){語句;語句;...}else if(表達(dá)式3){語句;語句;...}else{語句;語句;...}}

awk -F: '{ if(3==0) {print1,":是管理員"} else if(3>=1 &&3<=499 || 3==65534 ) {print1,":是系統(tǒng)用戶"} else {print 1,":是普通用戶"}}' awk -F: '{ if(3==0) {i++} else if(3>=1 &&3<=499 || $3==65534 ) {j++} else {k++}};END{print "管理員個(gè)數(shù)為:"i "\n系統(tǒng)用戶個(gè)數(shù)為:"j"\n普通用戶的個(gè)數(shù)為:"k }'

awk -F: '{if(3==0) {print1,"is admin"} else if(3>=1 &&3<=499 || 3==65534) {print1,"is sys users"} else {print $1,"is general user"} }' a.txt

root is admin
bin is sys users
daemon is sys users
adm is sys users
lp is sys users
redhat is general user
user01 is general user
named is sys users
u01 is general user
YUNWEI is general user

awk -F: '{ if(3==0) {print1":管理員"} else if(3>=1 &&3<500 || 3==65534 ) {print1":是系統(tǒng)用戶"} else {print $1":是普通用戶"}}' /etc/passwd

awk -F: '{if(3==0) {i++} else if(3>=1 && 3<500 ||3==65534){j++} else {k++}};END{print "管理員個(gè)數(shù)為:" i RS "系統(tǒng)用戶個(gè)數(shù)為:"j RS "普通用戶的個(gè)數(shù)為:"k }' /etc/passwd
管理員個(gè)數(shù)為:1
系統(tǒng)用戶個(gè)數(shù)為:28
普通用戶的個(gè)數(shù)為:27

awk -F: '{ if(3==0) {print1":是管理員"} else if(3>=500 &&3!=65534) {print 1":是普通用戶"} else {print1":是系統(tǒng)用戶"}}' passwd

awk -F: '{if(3==0){i++} else if(3>=500){k++} else{j++}} END{print i; print k; print j}' /etc/passwd

awk -F: '{if(3==0){i++} else if(3>999){k++} else{j++}} END{print "管理員個(gè)數(shù): "i; print "普通用個(gè)數(shù): "k; print "系統(tǒng)用戶: "j}' /etc/passwd

如果是普通用戶打印默認(rèn)shell,如果是系統(tǒng)用戶打印用戶名

awk -F: '{if(3>=1 &&3<500 || 3 == 65534) {print1} else if(3>=500 &&3<=60000 ) {print $NF} }' /etc/passwd


循環(huán)語句

for循環(huán)
打印1~5
for ((i=1;i<=5;i++));do echo $i;done

awk 'BEGIN { for(i=1;i<=5;i++) {print i} }'

打印1~10中的奇數(shù)

for ((i=1;i<=10;i+=2));do echo i;done|awk '{sum+=0};END{print sum}'

awk 'BEGIN{ for(i=1;i<=10;i+=2) {print i} }'

awk 'BEGIN{ for(i=1;i<=10;i+=2) print i }'

計(jì)算1-5的和

awk 'BEGIN{sum=0;for(i=1;i<=5;i++) sum+=i;print sum}'

awk 'BEGIN{for(i=1;i<=5;i++) (sum+=i);{print sum}}'

awk 'BEGIN{for(i=1;i<=5;i++) (sum+=i);print sum}'


while循環(huán)

打印1-5

i=1;while ((i<=5));do echoi;let i++;done

awk 'BEGIN { i=1;while(i<=5) {print i;i++} }'

打印1~10中的奇數(shù)

awk 'BEGIN{i=1;while(i<=10) {print i;i+=2} }'

計(jì)算1-5的和

awk 'BEGIN{i=1;sum=0;while(i<=5) {sum+=i;i++}; print sum }'

awk 'BEGIN {i=1;while(i<=5) {(sum+=i) i++};print sum }'


嵌套循環(huán)

!/bin/bash

for ((y=1;y<=5;y++))
do
for ((x=1;x<=y;x++)) do echo -nx
done
echo
done

awk 'BEGIN{ for(y=1;y<=5;y++) {for(x=1;x<=y;x++) {printf x} ;print } }'

awk 'BEGIN { for(y=1;y<=5;y++) { for(x=1;x<=y;x++) {printf x};print} }'

1
12
123
1234
12345

awk 'BEGIN{ y=1;while(y<=5) { for(x=1;x<=y;x++) {printf x};y++;print}}'

1
12
123
1234
12345

嘗試用三種方法打印99口訣表:

awk 'BEGIN{for(y=1;y<=9;y++) { for(x=1;x<=y;x++) {printf x""y"="xy"\t"};print} }'

awk 'BEGIN{for(y=1;y<=9;y++) { for(x=1;x<=y;x++) printf x""y"="xy"\t";print} }'

awk 'BEGIN{i=1;while(i<=9){for(j=1;j<=i;j++) {printf j""i"="ji"\t"};print;i++ }}'

awk 'BEGIN{for(i=1;i<=9;i++){j=1;while(j<=i) {printf j""i"="ij"\t";j++};print}}'

循環(huán)的控制:
break 條件滿足的時(shí)候中斷循環(huán)
continue 條件滿足的時(shí)候跳過循環(huán)

awk 'BEGIN{for(i=1;i<=5;i++) {if(i==3) break;print i} }'

1
2

awk 'BEGIN{for(i=1;i<=5;i++){if(i==3) continue;print i}}'

1
2
4
5


awk算數(shù)運(yùn)算

      • / %(模) (冪23)
        可以在模式中執(zhí)行計(jì)算,awk都將按浮點(diǎn)數(shù)方式執(zhí)行算術(shù)運(yùn)算

awk 'BEGIN{print 1+1}'

awk 'BEGIN{print 1**1}'

awk 'BEGIN{print 2**3}'

awk 'BEGIN{print 2/3}'


awk統(tǒng)計(jì)案例

統(tǒng)計(jì)系統(tǒng)中各種類型的shell

awk -F: '{ shells[$NF]++ };END{for (i in shells) {print i,shells[i]} }' /etc/passwd

books[linux]++
books[linux]=1
shells[/bin/bash]++
shells[/sbin/nologin]++

/bin/bash 5
/sbin/nologin 6

shells[/bin/bash]++ a
shells[/sbin/nologin]++ b
shells[/sbin/shutdown]++ c

books[linux]++
books[php]++


統(tǒng)計(jì)網(wǎng)站訪問狀態(tài)

ss -antp|grep 80|awk '{states[$1]++};END{for(i in states){print i,states[i]}}'

TIME_WAIT 578
ESTABLISHED 1
LISTEN 1

ss -an |grep :80 |awk '{states[$2]++};END{for(i in states){print i,states[i]}}'

LISTEN 1
ESTAB 5
TIME-WAIT 25

ss -an |grep :80 |awk '{states[$2]++};END{for(i in states){print i,states[i]}}' |sort -k2 -rn

TIME-WAIT 18
ESTAB 8
LISTEN 1


統(tǒng)計(jì)訪問網(wǎng)站的每個(gè)IP的數(shù)量

netstat -ant |grep :80 |awk -F: '{ip_count[$8]++};END{for(i in ip_count){print i,ip_count[i]} }' |sort

ss -an |grep :80 |awk -F":" '!/LISTEN/{ip_count[$(NF-1)]++};END{for(i in ip_count){print i,ip_count[i]}}' |sort -k2 -rn |head


統(tǒng)計(jì)網(wǎng)站日志中PV量

統(tǒng)計(jì)Apache/Nginx日志中某一天的PV量  <統(tǒng)計(jì)日志>

grep '27/Jul/2017' mysqladmin.cc-access_log |wc -l

14519

統(tǒng)計(jì)Apache/Nginx日志中某一天不同IP的訪問量 <統(tǒng)計(jì)日志>

grep '27/Jul/2017' mysqladmin.cc-access_log |awk '{ips[$1]++};END{for(i in ips){print i,ips[i]} }' |sort -k2 -rn |head

grep '07/Aug/2017' access.log |awk '{ips[1]++};END{for(i in ips){print i,ips[i]} }' |awk '2>100' |sort -k2 -rn


名詞解釋:

網(wǎng)站瀏覽量(PV)

名詞:PV=PageView (網(wǎng)站瀏覽量)

說明:指頁面的瀏覽次數(shù),用以衡量網(wǎng)站用戶訪問的網(wǎng)頁數(shù)量。多次打開同一頁面則瀏覽量累計(jì)。用戶每打開一個(gè)頁面便記錄1次PV。

名詞:VV = Visit View(訪問次數(shù))

說明:從訪客來到您網(wǎng)站到最終關(guān)閉網(wǎng)站的所有頁面離開,計(jì)為1次訪問。若訪客連續(xù)30分鐘沒有新開和刷新頁面,或者訪客關(guān)閉了瀏覽器,則被計(jì)算為本次訪問結(jié)束。

獨(dú)立訪客(UV)

名詞:UV= Unique Visitor(獨(dú)立訪客數(shù))

說明:1天內(nèi)相同的訪客多次訪問您的網(wǎng)站只計(jì)算1個(gè)UV。

獨(dú)立IP(IP)

名詞:IP=獨(dú)立IP數(shù)

說明:指1天內(nèi)使用不同IP地址的用戶訪問網(wǎng)站的數(shù)量。同一IP無論訪問了幾個(gè)頁面,獨(dú)立IP數(shù)均為1

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本章主要學(xué)習(xí)內(nèi)容awk介紹 ?awk基本用法 ?awk變量 ?awk格式化 ?awk操作符 ?awk條件判斷 ?a...
    楠人幫閱讀 1,369評論 0 8
  • awk是行處理器: 相比較屏幕處理的優(yōu)點(diǎn),在處理龐大文件時(shí)不會(huì)出現(xiàn)內(nèi)存溢出或是處理緩慢的問題,通常用來格式化文本信...
    想賺錢的雷大閱讀 562評論 0 3
  • awk使用說明 awk是行處理器: 相比較屏幕處理的優(yōu)點(diǎn),在處理龐大文件時(shí)不會(huì)出現(xiàn)內(nèi)存溢出或是處理緩慢的問題,通常...
    好好學(xué)習(xí)的蝸牛閱讀 552評論 0 2
  • awk介紹awk變量printf命令:實(shí)現(xiàn)格式化輸出操作符awk patternawk actionawk數(shù)組aw...
    哈嘍別樣閱讀 1,737評論 0 4
  • Linux指令中文說明傳送入口 整理自Linux指令中文說明 文本和數(shù)據(jù)進(jìn)行處理的編程語言awk 是一種編程語言,...
    釋閑人閱讀 2,380評論 1 6

友情鏈接更多精彩內(nèi)容