日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

shell中最強(qiáng)大,實(shí)用的命令awk,梳理清楚就是這么簡(jiǎn)單

 

awk的工作模式

awk是一個(gè)文本處理工具,通常用于處理數(shù)據(jù)并生成結(jié)果報(bào)告

語(yǔ)法格式

第一種形式

awk 'BEGIN{}pattern{commands}END{}' file_name
shell中最強(qiáng)大,實(shí)用的命令awk,梳理清楚就是這么簡(jiǎn)單

 

語(yǔ)法格式解釋

BEGIN正式處理數(shù)據(jù)之前

pattern匹配模式

{commands}匹配命令,可能多行

END處理完所有匹配數(shù)據(jù)后執(zhí)行

第二種形式

standard output | awk 'BEGIN{}pattern{commands}END{}'

awk的內(nèi)置變量

shell中最強(qiáng)大,實(shí)用的命令awk,梳理清楚就是這么簡(jiǎn)單

 

內(nèi)置變量含義

$0整行內(nèi)容

$1-$n當(dāng)前行的第1-n個(gè)字段(按照指定分隔符分割后)

NF(Number Field)當(dāng)前行的字段個(gè)數(shù),也就是多少列

NR(Number Row)當(dāng)前行的行號(hào),從1開始計(jì)數(shù)

FNR(File Number Row)多文件處理時(shí),每個(gè)文件行號(hào)單獨(dú)計(jì)數(shù),都是從0開始

FS(Field Separator)輸入字段分割符。不指定默認(rèn)以空格或者Tab鍵分割

RS(Row Separator)輸入行分割符。默認(rèn)回車n

OFS(Output Field Sepatator)輸出字段分割符。默認(rèn)為空格

ORS(Output Row)輸出行分隔符。默認(rèn)為回車

FILENAME當(dāng)前輸入的文件名字

ARGC命令行參數(shù)個(gè)數(shù)

ARGV命令行參數(shù)數(shù)組

看一下/etc/passwd文件的內(nèi)容

cat /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

輸出文件的每行內(nèi)容

awk '{print $0}' /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

輸出第二列內(nèi)容

需要指定分隔符:

awk 'BEGIN{FS=":"}{print $2}' /etc/passwd

x
x
x

不需要指定分割符,默認(rèn)空格,tab鍵,多個(gè)也可以分隔(如一個(gè)空格+一個(gè)tab鍵)

show.txt文件內(nèi)容如下

# 空格分隔
Python JAVA php
# tab鍵分隔
flink	hadoop	storm
awk '{print $1}' show.txt

輸出如下:

python
flink
shell中最強(qiáng)大,實(shí)用的命令awk,梳理清楚就是這么簡(jiǎn)單

 

輸出每一行有多少列

awk '{print NF}' show.txt

輸出如下

3
3

可以用這個(gè)輸出每一行的最后一列的值

awk '{print $NF}' show.txt

輸出行號(hào)

awk '{print NR}' show.txt

輸出如下(沒(méi)有混合使用,例子比較簡(jiǎn)單)

1
2

對(duì)每個(gè)文件的行號(hào)單獨(dú)計(jì)數(shù)

awk '{print FNR}' show.txt /etc/passwd

同時(shí)指定行分隔符和列分隔符

show.txt的文件內(nèi)容如下

python|java|php--flink|hadoop|storm

先輸出每一行數(shù)據(jù)

awk 'BEGIN{RS="--"}{print $0}' show.txt

輸入如下

python|java|php
flink|hadoop|storm

輸出每一行的第二列

awk 'BEGIN{RS="--";FS="|"}{print $2}' show.txt

輸出如下

java
hadoop

在上面基礎(chǔ)上指定行分隔符

awk 'BEGIN{RS="--";FS="|";ORS="&"}{print $2}' show.txt

輸出如下

java&hadoop&

再次指定列分隔符

awk 'BEGIN{RS="--";FS="|";ORS="&";OFS="@@"}{print $1,$2}' show.txt

輸出如下

python@@java&flink@@hadoop&

輸出文件名字

show.txt的文件內(nèi)容如下

python|java|php
flink|hadoop|storm
awk '{print FILENAME}' show.txt

輸入如下,因?yàn)槭菍?duì)行進(jìn)行處理,所以有幾行,輸出幾次文件名

show.txt
show.txt

使用

jps -l輸入如下,運(yùn)行的服務(wù)如下

34476 com.st.cis.main.WeiboSerachServer
4652 mbase-spider-parser-1.0.jar
43820 kolink-xhs-1.0.jar

想關(guān)閉mbase-spider-1.0.jar這個(gè)jar包的服務(wù),可以寫一個(gè)如下腳本,非常方便,更高階用法另開一篇文章好好寫寫

pidfile=`jps -l | grep 'mbase-spider-1.0.jar' | awk '{print $1}'`
kill -9 $pidfile
if [ $? -eq 0 ]
then
	echo "stop `hostname` kolink-xhs Success!"
else
	echo "stop `hostname` kolink-xhs Failed!"
fi

分享到:
標(biāo)簽:shell
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定