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

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

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

shell中最強大,實用的命令awk,梳理清楚就是這么簡單

 

awk的工作模式

awk是一個文本處理工具,通常用于處理數據并生成結果報告

語法格式

第一種形式

awk 'BEGIN{}pattern{commands}END{}' file_name
shell中最強大,實用的命令awk,梳理清楚就是這么簡單

 

語法格式解釋

BEGIN正式處理數據之前

pattern匹配模式

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

END處理完所有匹配數據后執行

第二種形式

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

awk的內置變量

shell中最強大,實用的命令awk,梳理清楚就是這么簡單

 

內置變量含義

$0整行內容

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

NF(Number Field)當前行的字段個數,也就是多少列

NR(Number Row)當前行的行號,從1開始計數

FNR(File Number Row)多文件處理時,每個文件行號單獨計數,都是從0開始

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

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

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

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

FILENAME當前輸入的文件名字

ARGC命令行參數個數

ARGV命令行參數數組

看一下/etc/passwd文件的內容

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

輸出文件的每行內容

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

輸出第二列內容

需要指定分隔符:

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

x
x
x

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

show.txt文件內容如下

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

輸出如下:

python
flink
shell中最強大,實用的命令awk,梳理清楚就是這么簡單

 

輸出每一行有多少列

awk '{print NF}' show.txt

輸出如下

3
3

可以用這個輸出每一行的最后一列的值

awk '{print $NF}' show.txt

輸出行號

awk '{print NR}' show.txt

輸出如下(沒有混合使用,例子比較簡單)

1
2

對每個文件的行號單獨計數

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

同時指定行分隔符和列分隔符

show.txt的文件內容如下

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

先輸出每一行數據

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

輸入如下

python|java|php
flink|hadoop|storm

輸出每一行的第二列

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

輸出如下

java
hadoop

在上面基礎上指定行分隔符

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的文件內容如下

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

輸入如下,因為是對行進行處理,所以有幾行,輸出幾次文件名

show.txt
show.txt

使用

jps -l輸入如下,運行的服務如下

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

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

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

分享到:
標簽:shell
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定