日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 文本处理三剑客应用

發布時間:2024/1/18 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 文本处理三剑客应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux 系統中文本處理有多種不同的方式,系統為我們提供了三個實用命令,來實現對行列的依次處理功能,grep命令文本過濾工具,cut列提取工具,sed文本編輯工具,以及awk文本報告生成工具,利用這三個工具可以靈活的過濾截取任何系統文本內容。

Grep 文本過濾工具

grep 是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來,在Linux系統中是最常用的行匹配提取工具.

[root@localhost ~]# grep --help命令語法:[ grep [選項] [過濾菜單] 文件名 ]-a #將二進制數據一同列出-c #計算找到查找字符串的次數-i #忽略大小寫差異-n #標號顯示-v #反選參數-q #不顯示任何提示信息,安靜模式-E #使用擴展正則,egrep-A #匹配指定字符的后n個字符-B #匹配指定字符的前n個字符-C #匹配指定字符的前n個和后n個字符

匹配任意多次字符: 使用*實現匹配前一個字符出現0次或任意多次(本例則是匹配g字符出現0次或任意多次)

[root@localhost ~]# ls blog bloog blooog[root@localhost ~]# ls | grep -o "blo*g" blog bloog blooog

匹配任意一個字符: 使用.實現匹配除換行符以外的任意一個字符,(只匹配一個字符),一般我們把這種匹配模式叫做貪婪匹配

[root@localhost ~]# ls blog bloog blooog[root@localhost ~]# ls | grep -o "blo.g" bloog [root@localhost ~]# ls | grep -o "blo..g" blooog

匹配行首行尾字符: 使用^匹配行首是指定字符的文本,相反使用$匹配行尾是指定字符的文本

[root@localhost ~]# ls alert lyshark tcpl wakaka wang wangg wanggg woxin[root@localhost ~]# ls | grep "^ly" lyshark [root@localhost ~]# ls | grep "^a" alert [root@localhost ~]# ls | grep "a$" wakaka [root@localhost ~]# ls | grep "ark$" lyshark [root@localhost ~]# ls | grep "^w" | grep "n$" woxin

匹配括號范圍以內字符: 使用[]匹配中括號內任意一個字符,只匹配其中一個

[root@localhost ~]# ls ale1t ale2t ale3t aleat alebt alert[root@localhost ~]# ls | grep "ale[a-z]t" aleat alebt alert [root@localhost ~]# ls | grep "ale[0-9]t" ale1t ale2t ale3t [root@localhost ~]# ls | grep "ale[ab]t" aleat alebt

匹配括號范圍以外字符: 使用[^]匹配除了中括號字符以外的任意一個字符,符號^取反的意思.

[root@localhost ~]# ls ale1t ale2t ale3t aleat aleAt aleBB alebt aleCT aleEt alert[root@localhost ~]# ls | grep "ale[^0-9]t" aleat aleAt alebt aleEt alert [root@localhost ~]# ls | grep "ale[^A-Z]t" ale1t ale2t ale3t aleat alebt alert [root@localhost ~]# ls | grep "ale[^AE]t" ale1t ale2t ale3t aleat alebt alert

匹配行首某字符: 使用^[^]匹配行首是與不是指定字符的行,匹配行首是否是或不是某一個字符的記錄.

[root@localhost ~]# ls ale1t ale2t lyshark tcpl wakaka wang wangg wanggg woxin[root@localhost ~]# ls | grep ^[a] #匹配行首是a開頭 ale1t ale2t [root@localhost ~]# ls | grep ^[^a] #匹配行首不是a開頭 lyshark tcpl wakaka wang wangg wanggg woxin [root@localhost ~]# ls | grep -n "^[^a-zA-Z]" #匹配開頭不是a-z,A-Z的行 8:123123 9:1233 10:66431 11:124adb

匹配恰好出現次數行: 使用\{n}\匹配前面的字符恰好出現了n次的行

[root@localhost ~]# ls 12333 13466614578 13562653874 172.168.1.2 18264758942 192.168.1.1 45666 78999[root@localhost ~]# ls | grep -o "123\{3\}" 12333 [root@localhost ~]# ls | grep "[0-9][0-9][0-9]\{3\}" #匹配前兩個字符是0-9的,最后一個字符出現過3次的 12333 45666 78999 [root@localhost ~]# ls | grep "[1][3-8][0-9]\{9\}" #匹配手機號規則 13466614578 13562653874 18264758942

匹配不小于出現次數行: 使用\{n,}\匹配前面字符出現,不小于n次的行

[root@localhost ~]# ls 12333 123333 1233333[root@localhost ~]# ls | grep "123\{3,\}" #前一個字符3的出現不小于3次 12333 123333 1233333 [root@localhost ~]# ls | grep "123\{4,\}" #前一個字符3的出現不小于4次 123333 1233333

匹配不小于且不大于次數行: 使用\{n,m}\匹配前面的字符出現,不小于n次,最多出現m次的行

[root@localhost ~]# ls 123 1233 12333 123333 1233333 12333333 123333333 1233333333 12333333333[root@localhost ~]# ls |grep "123\{3,5\}" #前一個字符3最少出現3次,最多不大于5次 12333 123333 1233333

匹配出現1次或任意多次的行: 使用+匹配前一個字符出現1次或任意多次的行

[root@localhost ~]# ls gogle google gooogle gooogooogle goooogle gooooogle goooooogle[root@localhost ~]# ls | grep -E "go+gle" gogle google gooogle goooogle gooooogle goooooogle

匹配出現0次或1次的行: 使用?匹配前一個字符出現過0次或1次,最少0次,最多1次.

[root@localhost ~]# ls gogle google gooogle gooogooogle goooogle gooooogle goooooogle[root@localhost ~]# ls | grep -E "go?gle" gogle [root@localhost ~]# ls | grep -E "goo?gle" gogle google

匹配分支選擇行: 使用|匹配兩個或多個分支選擇,從特定分支內選擇不同的關鍵詞匹配查詢

[root@localhost ~]# ls alert lyshark rui wang[root@localhost ~]# ls | grep -E "alert|lyshark" alert lyshark [root@localhost ~]# ls | grep -E "wang|rui|alert" alert rui wang

匹配模式單元行: 使用()將字符作為一個整體匹配,即模式單元匹配

[root@localhost ~]# ls dog dogdog dogdogdog hello_lyshark hello_world[root@localhost ~]# ls | grep -E "(dog)+" dog dogdog dogdogdog [root@localhost ~]# ls | grep -E "hello_(world|lyshark)" hello_lyshark hello_world

匹配日期與時間行: 使用正則匹配文本中的日期與時間

# 匹配24小時時間 [root@localhost ~]# cat | grep -E "^[0-23]{2}:[0-59]{2}:[0-59]{2}" 12:00:00 13:55:00 01:11:22# 匹配12小時時間 [root@localhost ~]# cat | grep -E "^[0-12]{2}:[0-59]{2}:[0-59]{2}" 12:00:00 01:11:22# 匹配年月日 [root@localhost ~]# cat | grep -E "^([0-9]{4})-([0-12]{2})-([0-31]{2})" 2019-10-10 2014-01-01# 匹配并輸出/var/log/secure特殊時間格式 [root@localhost ~]# cat | grep -o -E "^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sept|Oct|Nov|Dec) ([0-9]{2})" Jan 16 Nov 17

過濾空白行與注釋行: 過濾掉開頭是#號的,和開頭是空行的行,實現去掉注釋與空白行

[root@localhost ~]# cat lyshark.log | grep -v "^#" | grep -v "^$" ADMIN Good 123123 1233. 66431.

匹配開頭結尾的行: 匹配開頭是0-9且結尾是點的行

[root@localhost ~]# cat lyshark.log |grep -n -E "^[0-9]+\." 9:1233. 10:66431.

匹配IP/MAC相關地址行: 正則匹配IP地址,與匹配MAC地址

# 匹配IPV4地址 [root@localhost ~]# ifconfig | egrep -o "(([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])" 192.168.150.128 255.255.255.0 192.168.150.25# 匹配IPV6地址 [root@localhost ~]# ifconfig | egrep -o "[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){0,7}::[a-f0-9]{0,4}(:[a-f0-9]{1,4}){0,7}" fe80::d5d5:6d6d:3e86:c3e1# 匹配MAC地址 [root@localhost ~]# ifconfig | egrep -o "([0-9]|[a-z]){2,2}:([0-9]|[a-z]){2,2}:([0-9]|[a-z]){2,2}:([0-9]|[a-z]){2,2}:([0-9]|[a-z]){2,2}:([0-9]|[a-z]){2,2}" 00:0c:29:72:77:7f# 匹配郵箱(測試) [root@localhost ~]# egrep -o "^[0-9a-zA-Z][0-9a-zA-Z_]{1,16}[0-9a-zA-Z]\@[0-9a-zA-Z-]*([0-9a-zA-Z])?\.(com|com.cn|net|org|cn)$"

Cut 列提取工具

cut命令用來顯示行中的指定部分,刪除文件中指定字段,cut經常用來顯示文件的內容,類似于type命令.該命令顯示文件的內容,它依次讀取由參數file所指明的文件,將它們的內容輸出到標準輸出上.

[root@localhost ~]# cut --help命令語法:[ cut [選項] [列號] 文件名 ]-f #-f 列號:指定提取第幾列-d #-d 分隔符:按照指定分隔符進行分割-c #-c 字符范圍:不依賴分割符來分割,而是通過字符范圍進行字段提取-m #表示從第一個字符提取到第m個-b #僅顯示行中指定直接范圍的內容-n #與"-b"選項連用,不分割多字節字符n- #表示從第n個字符開始提取到結尾n-m #表示從第n提取到第m個字符--complement #補齊被選擇的字節,字符或字段--out-delimiter=<字段分隔符> #指定輸出內容是的字段分割符

手動創建一個文本,添加內容列之間用tab分隔,用來測試后續內容

[root@localhost ~]# cat lyshark.log ID NAME AGE Gender Mark 1 WR 22 m 100 2 LC 26 m 90 3 LY 23 m 88

通過使用 -f 選項指定過濾的列,并顯示到屏幕

[root@localhost ~]# cut -f 2 lyshark.log NAME WR LC LY [root@localhost ~]# cut -f 2,5 lyshark.log NAME Mark WR 100 LC 90 LY 88

通過使用 --complement 選項提取指定字段之外的列,(打印除了第2列之外的列)

[root@localhost ~]# cut -f 2 --complement lyshark.logID AGE Gender Mark 1 22 m 100 2 26 m 90 3 23 m 88

通過使用 -c 選項過濾/etc/passwd,并打印第1個到第3個字符

[root@localhost ~]# cut -c 1-3 /etc/passwd roo bin dae

通過使用 -c -2 選項過濾/etc/passwd,并打印前2個字符

[root@localhost ~]# cut -c -2 /etc/passwd ro bi da

通過使用 -c 5- 選項過濾/etc/passwd,打印從第5個字符開始到結尾

[root@localhost ~]# cut -c 5- /etc/passwd :x:0:0:root:/root:/bin/bash x:1:1:bin:/bin:/sbin/nologin

通過使用 -d 指定分隔符 -f 指定打印第個字段,以下我們分別截取第1和第7個字段

[root@localhost ~]# cut -d ":" -f 1,7 /etc/passwd root:/bin/bash bin:/sbin/nologin daemon:/sbin/nologin

通過使用 -c -3 指定截取前3個字符,還可以通過 -c 3 截取第3個字符

[root@localhost ~]# cut -c -3 /etc/passwd roo bin dae [root@localhost ~]# cut -c 3 /etc/passwd o n e

Sed 文本流編輯器

sed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達式使用,sed主要是來進行數據選取,替換,刪除,新增的命令.

[root@localhost ~]# sed --help命令語法:[ sed [選項] [范圍] [動作] 文件名 ]-n #把經過sed命令處理的行輸出到屏幕-e #允許對輸入數據應用多條sed命令編輯-f #從sed腳本中讀入sed操作,和awk命令的-f類似-r #在sed中支持擴展正則表達式-i #用sed的修改結果,寫到文件命令動作:p #打印,輸出指定的行a #追加,在當前行后添加一行或多行i #插入,在當前行前插入一行或多行c #整行替換,用c后面的字符串替換原數據行d #刪除,刪除指定的行s #字串替換,格式:"行范圍s/舊字串/新字串/g"#對sed命令我們要知道的是,它所有的修改都不會直接修改文件的內容,而是在內存中進行處理然后打印到屏幕上 #如果想要寫入文件,請使用 sed -i 選項才會保存到文本中.

在進行實驗之前,首先創建一個文件,來做測試用

[root@localhost ~]# cat lyshark.logID NAME AGE Gender Mark 1 WR 22 m 100 2 LC 26 m 90 3 LY 23 m 88 4 XDL 40 b 100

使用 sed '2p' 重復打印第二行數據

[root@localhost ~]# sed '2p' lyshark.log ID NAME AGE Gender Mark 1 WR 22 m 100 1 WR 22 m 100 ←本行是2p打印的 2 LC 26 m 90 3 LY 23 m 88 4 XDL 40 b 100[root@localhost ~]# sed '3p' lyshark.log ID NAME AGE Gender Mark 1 WR 22 m 100 2 LC 26 m 90 2 LC 26 m 90 ←本行是2p打印的 3 LY 23 m 88 4 XDL 40 b 100

使用 sed -n 限定,只選取指定的行進行顯示

[root@localhost ~]# sed -n '2p' lyshark.log ←只打印第2行數據 1 WR 22 m 100[root@localhost ~]# sed -n '1p' lyshark.log ←只打印第1行數據 ID NAME AGE Gender Mark

使用 sed '2,4d' 刪除掉文件2-4行,并顯示到屏幕,(原文件內容并沒有被修改)

[root@localhost ~]# sed '2,4d' lyshark.log ←刪除2-4行的數據并打印 ID NAME AGE Gender Mark 4 XDL 40 b 100[root@localhost ~]# sed '1d' lyshark.log ←刪除第1行的數據 1 WR 22 m 100 2 LC 26 m 90 3 LY 23 m 88 4 XDL 40 b 100

使用 sed '2[a|i]' 追加,或者插入數據指定數據

[root@localhost ~]# sed '2a hello lyshark' lyshark.log ←在第2行后面追加數據 ID NAME AGE Gender Mark 1 WR 22 m 100 hello lyshark 2 LC 26 m 90 3 LY 23 m 88 4 XDL 40 b 100[root@localhost ~]# sed '2i hello lyshark' lyshark.log ←在第2行前面插入數據 ID NAME AGE Gender Mark hello lyshark 1 WR 22 m 100 2 LC 26 m 90 3 LY 23 m 88 4 XDL 40 b 100

使用 \ 換行符,一次插入多行數據

[root@localhost ~]# sed '2a hello \ ←在第二行下面,插入一段話,用\隔開 > my name is lyshark \ > age 22 \ > boy ' lyshark.logID NAME AGE Gender Mark 1 WR 22 m 100 hello my name is lyshark age 22 boy 2 LC 26 m 90 3 LY 23 m 88 4 XDL 40 b 100

使用 sed 'c' 實現整行替換數據

[root@localhost ~]# cat lyshark.log | sed '5c 5 WRS 99 m 111' ←整行替換第5行內容 ID NAME AGE Gender Mark 1 WR 22 m 100 2 LC 26 m 90 3 LY 23 m 88 5 WRS 99 m 111

使用 sed 后面跟上 -i 選項,將第5行的修改,保存進文件,(-i選項是回寫)

[root@localhost ~]# sed -i '5c 5 WRS 99 m 111' lyshark.log[root@localhost ~]# cat lyshark.log ID NAME AGE Gender Mark 1 WR 22 m 100 2 LC 26 m 90 3 LY 23 m 88 5 WRS 99 m 111 ←這里的數據已經寫入成功

字符串的替換 sed 's/舊文本/新文本/g' 進行整行替換

[root@localhost ~]# sed '2s/WR/LyShark/g' lyshark.log ←將第2行的,WR替換成LyShark ID NAME AGE Gender Mark 1 LyShark 22 m 100 2 LC 26 m 90 3 LY 23 m 88 5 WRS 99 m 111[root@localhost ~]# sed '3s/LC/Admin/g' lyshark.log ←將第3行的,LC替換成Admin ID NAME AGE Gender Mark 1 WR 22 m 100 2 Admin 26 m 90 3 LY 23 m 88 5 WRS 99 m 111#注意:上方只是替換打印,并沒有保存,如若想保存請加 -i 屬性

將第3行數據的開頭添加#注釋

[root@localhost ~]# sed '3s/^/#/g' lyshark.log ID NAME AGE Gender Mark 1 WR 22 m 100 #2 LC 26 m 90 3 LY 23 m 88 5 WRS 99 m 111

將第4和第5行的內容替換成空

[root@localhost ~]# sed -e '4s/LY//g ; 5s/WRS//g' lyshark.log ID NAME AGE Gender Mark 1 WR 22 m 100 2 LC 26 m 90 3 23 m 88 5 99 m 111#sed 要進行多行操作時,只能通過 -e 寫多條操作語句,用 ; 或回車分隔

通過使用grep命令定位到指定行,然后使用sed替換無用字符串,最后實現IP地址的過濾.

[root@localhost ~]# ifconfig | grep "inet 192" |sed 's/^.*inet //g' 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255[root@localhost ~]# ifconfig |grep "inet 192" |sed 's/^.*inet //g' |sed 's/ netmask.*$//g' 192.168.1.10[root@localhost ~]# ifconfig | grep "inet6" | head -n 1 | sed 's/^.*inet6 //g' | sed 's/ prefixlen.*$//g' fe80::db97:e754:b016:1686[root@localhost ~]# ifconfig | grep "RX packets" | head -n 1 | sed 's/^.*ets //g' | sed 's/ bytes.*$//g' 97265

Awk 文本報告生成器

awk是一種編程語言,用于在Linux下對文本和數據進行處理,數據可以來自標準輸入(stdin),一個或多個文件,或其它命令的輸出,它支持用戶自定義函數和動態正則表達式等先進功能,此處我們只需要了解一些基礎即可.

[root@localhost ~]# awk --help命令語法:[ awk '條件1{動作1} 條件2{動作2} ....' 文件名 ]條件:一般使用關系表達式作為條件x>10 判斷x變量是否大于10x==y 判斷變量x是否等于變量yA ~ B 判斷字符串A中是否包含能匹配B表達式的字符串A!~ B 判斷字符串A中是否不包含能匹配B表達式的字符串

在進行實驗之前,首先創建lyshark.log測試文件,后續使用該文件練習過濾.

[root@localhost ~]# cat lyshark.logID NAME AGE Gender Mark 1 WR 22 m 100 2 LC 26 m 90 3 LY 23 m 88 4 XDL 40 b 100

簡單使用,awk格式化輸出文本的第二列和第三列的內容.

[root@localhost ~]# awk '{ printf $2 "\t" $3 "\n" }' lyshark.log NAME AGE WR 22 LC 26 LY 23 XDL 40

指定分隔符,通過使用-F參數可以用于指定一個分隔符.

[root@localhost ~]# awk -F ":" '{printf $1 "\t" $6 "\n"}' /etc/passwd root /root bin /bin daemon /sbin adm /var/adm

Bengin/End關鍵字: BEGIN的執行時機是在awk程序開始過濾之前執行,BEGIN定義的動作只能被執行一次.

[root@localhost ~]# awk 'BEGIN{ printf "執行語句前,執行我 \n" }{ printf $2 "\t" $4 "\n" }' lyshark.log 執行語句前,執行我 NAME Gender WR m LC m LY m XDL b

至于END則剛好和BEGIN相反,END是在awk程序處理完所有數據,即將結束時執行,END后的動作只在程序結束時執行一次.

[root@localhost ~]# awk 'END{ printf "執行語句結束后,執行我 \n" }{ printf $2 "\t" $4 "\n" }' lyshark.log NAME Gender WR m LC m LY m XDL b 執行語句結束后,執行我

當然了BEGIN與END是可以連用的,以下例子也就是實現了連用的效果.

[root@ ~]# awk 'BEGIN{ printf "執行語句前,先執行我 \n" }END{ printf "執行語句后,在執行我 \n"}{ printf $2 "\t" $4 "\n" }' lyshark.log執行語句前,先執行我 NAME Gender WR m LC m LY m XDL b 執行語句后,在執行我

關系運算符: 設定條件,符合執行不符合不執行,下面設定條件為AGE字段>=25歲的列出

[root@localhost ~]# cat lyshark.log | grep -v ID | awk '$3 >=25 {print $1 "\t" $2}' 2 LC 4 XDL[root@localhost ~]# cat lyshark.log |grep -v ID | awk '$2 == "XDL" {print $0}' 4 XDL 40 b 100

awk正則匹配: awk是列提取命令,其每次讀入一行,并進行判斷,重復賦值變量,并打印數據.

指定搜索:正則搜索第2列NAME字段,包含XDL的行,并打印出AGE列對應的值.

[root@localhost ~]# cat lyshark.log ID NAME AGE Gender Mark 1 WR 22 m 100 2 LC 26 m 90 3 LY 23 m 88 4 XDL 40 b 100[root@localhost ~]# awk '$2 ~/XDL/ {printf $3 "\n"}' lyshark.log 40

全局搜索:正則全局搜索包含WR的字段行,并打印本行$0全部數據.

[root@localhost ~]# cat lyshark.log ID NAME AGE Gender Mark 1 WR 22 m 100 2 LC 26 m 90 3 LY 23 m 88 4 XDL 40 b 100[root@localhost ~]# cat lyshark.log | awk '/WR/ {printf $0 "\n"}' 1 WR 22 m 100

正則查找相應行:正則全局查找滿足開頭范圍是[0-2]的行,并打印出全部數據.

[root@localhost ~]# cat lyshark.log ID NAME AGE Gender Mark 1 WR 22 m 100 2 LC 26 m 90 3 LY 23 m 88 4 XDL 40 b 100[root@localhost ~]# cat lyshark.log | awk '/^[0-2]/ {print $0}' 1 WR 22 m 100 2 LC 26 m 90

awk內置變量: 接下來將來看幾個比較重要的內置變量的使用,以及簡單實現判斷功能

通過內置變量 FS=":" 定義分隔符,打印/etc/passwd文件的第1列和第7列

[root@localhost ~]# cat /etc/passwd |grep "/bin/bash" | awk '{print $0}' root:x:0:0:root:/root:/bin/bash[root@localhost ~]# cat /etc/passwd |grep "/bin/bash" | awk 'BEGIN {FS=":"} {printf $1 "\t" $7 "\n"}' root /bin/bash

打印行內容的同時,打印出行號(NR變量),和本行的字段數(NF變量)

[root@localhost ~]# cat /etc/passwd |grep "/bin/bash" | awk 'BEGIN {FS=":"} {print $1 "\t" "行號:" NR "\t"}' root 行號:1[root@localhost ~]# cat /etc/passwd |grep "/bin/bash" | awk 'BEGIN {FS=":"} {print $1 "\t" "字段數:" NF "\t"}' root 字段數:7[root@localhost ~]# cat /etc/passwd | awk 'BEGIN {FS=":"} {print $1 "\t" "記錄數:" FNR "\t"}' root 記錄數:1 bin 記錄數:2 daemon 記錄數:3

打印內容的同時,首先判斷 $1==sshd 然后再打印本行的行號等信息

[root@localhost ~]# cat /etc/passwd | awk 'BEGIN{FS=":"}$1=="sshd" {print $0}' sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

簡單判斷功能:將第2行,到第4行,的內容加起來,最后輸出結果相加的結果

[root@localhost ~]# cat lyshark.log ID NAME AGE SEX LINUX 1 LY 18 boy 100 2 SC 30 man 150 3 WR 22 man 90 4 ZSX 55 boy 96[root@localhost ~]# awk 'NR==2{x=$3} NR==3{y=$3} NR==4{z=$3} {totle=x+y+z;print "Totle is:" totle}' lyshark.log Totle is:0 Totle is:18 Totle is:48 Totle is:70 Totle is:70[root@localhost ~]# awk 'NR==2{x=$3} NR==3{y=$3} NR==4{z=$3;totle=x+y+z;print "Totle is:" totle}' lyshark.log Totle is:70

簡單判斷功能:統計AGE列,將年齡小于25歲的任過濾出來,并顯示 is young man!

[root@localhost ~]# cat lyshark.log ID NAME AGE SEX LINUX 1 LY 18 boy 10 2 SC 30 man 50 3 WR 22 man 90 4 ZSX 55 boy 96[root@localhost ~]# cat lyshark.log | awk '{if (NR >= 2){if ($3 < 25) printf $2 " IS Young Man! \n"}}' LY IS Young Man! WR IS Young Man!

簡單判斷功能:統計LINUX列,當出現大于80分的,打印到屏幕上 is good man!

[root@localhost ~]# cat lyshark.log ID NAME AGE SEX LINUX 1 LY 18 boy 10 2 SC 30 man 50 3 WR 22 man 90 4 ZSX 55 boy 96[root@localhost ~]# cat lyshark.log | awk 'NR>=2 {temp=$5} temp>80 {printf $2 "IS Good Man!\n"}' WRIS Good Man! ZSXIS Good Man!

總結

以上是生活随笔為你收集整理的Linux 文本处理三剑客应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 污网在线看 | 国产乱淫精品一区二区三区毛片 | 一区二区三区av夏目彩春 | 永久免费av无码网站性色av | 久久国产精品免费视频 | 亚洲AV无码乱码国产精品色欲 | 欧美爱爱免费视频 | 欧日韩在线 | 亚洲影音先锋 | 久久在草 | 麻豆福利在线观看 | 午夜久久一区 | 丝袜人妻一区二区 | 玖操| 不卡视频一区二区 | 啪啪小视频网站 | 爱爱高潮视频 | 欧美精品首页 | 天天爽 | 午夜国产福利在线观看 | 国产午夜三级 | 日韩经典第一页 | 884aa四虎影成人精品一区 | 婷婷五月综合久久中文字幕 | 久久久久成人精品无码 | 色爱AV综合网国产精品 | 色一涩| 欧美乱妇一区二区三区 | 欧美激情四区 | 免费看国产曰批40分钟粉红裤头 | 91中出| 亚洲视频不卡 | 欧美激情一区在线 | 成人性生交免费看 | 麻豆精品视频在线 | 国产综合视频一区二区 | 黄网站免费大全入口 | 高潮av在线| 国产精品久久久一区二区三区 | 国产在线激情视频 | 免费看黄视频的网站 | 国产精品视频久久久久久 | 麻豆精品在线 | 老司机午夜剧场 | 老头av| 波多野吉衣毛片 | 日韩成人小视频 | 精品国产精品国产偷麻豆 | 日韩色影院 | 亚洲视频 欧美视频 | 欧美成人精品欧美一级私黄 | 久久久亚洲成人 | 国内免费毛片 | 日本不卡网站 | 你懂的在线网站 | 精品国产乱子伦一区二区 | 国产精品jizz在线观看老狼 | 波多野结衣高清视频 | 人妻精品久久久久中文字幕 | 青青艹视频 | 色欲狠狠躁天天躁无码中文字幕 | 九九久久国产精品 | jizz黄| 国产综合内射日韩久 | 亚洲成人第一页 | 欧美在线免费播放 | 亚洲va韩国va欧美va精品 | 自拍偷拍麻豆 | 四虎网址大全 | 在线免费观看的av | 亚洲国内精品 | 亚洲风情亚aⅴ在线发布 | 91嫩草欧美久久久九九九 | 久久精品在线视频 | 91视频在线观看视频 | 24小时日本在线www免费的 | 欧美xxxx性xxxxx高清 | 五月天婷婷激情视频 | 射射av| 奇米四色777| 一区二区三区不卡视频在线观看 | 国产一区二区视频免费观看 | 在线观看免费毛片 | 国产亚洲精品成人a | 黄色国产在线观看 | 欧美一区二区三区日韩 | 日韩欧美在线一区二区三区 | 国产精品老牛影视 | 国产网站黄色 | 精品亚洲国产成av人片传媒 | av在线最新 | 免费看黄色a级片 | 国产综合久久 | www黄色片 | 日本少妇激情视频 | 成年人免费在线观看网站 | 久久久久久久一区 | 成年人小视频 | 成人激情视频在线 |