linux中awk工具的使用(转载)
生活随笔
收集整理的這篇文章主要介紹了
linux中awk工具的使用(转载)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
awk是一個非常好用的數(shù)據(jù)處理工具。相較于sed常常一整行處理,awk則比較傾向于一行當(dāng)中分成數(shù)個“字段”處理,awk處理方式如下:
$ awk '條件類型1{動作1} 條件類型2{動作2} ...' filename? ? 1.查看最近5條登錄用戶和ip地址
$ last -n 5|awk '{print $1"\t"$3}' lzyer 192.168.56.1 reboot boot lzyer 192.168.56.1 reboot boot lzyer 192.168.56.1wtmp Sat注意:$0代表整行
| 變量名稱 | 代表意義 |
| NF | 每一行($0)擁有字段總數(shù) |
| NR | 目前awk處理的第幾行 |
| FS | 目前分隔符,默認(rèn)是空白 |
?
awk的邏輯運(yùn)算
| 運(yùn)算單元 | 代表意義 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| == | 等于 |
| != | 不等于 |
值得注意的是那個“ == ”的符號,因?yàn)?#xff1a;
- 邏輯運(yùn)算上面亦即所謂的大于、小于、等于等判斷式上面,習(xí)慣上是以“ == ”來表示;
- 如果是直接給予一個值,例如變量設(shè)置時,就直接使用 = 而已。
舉例來說,在 /etc/passwd 當(dāng)中是以冒號 ":" 來作為字段的分隔, 該文件中第一字段為帳號,第三字段則是 UID。那假設(shè)我要查閱,第三欄小于 10 以下的數(shù)據(jù),并且僅列出帳號與第三欄, 那么可以這樣做:
$ cat /etc/passwd|awk '{FS=":"} $3<10 {print $0}' root:x:0:0:root:/root:/bin/zsh 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 sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin統(tǒng)計數(shù)據(jù)例子:
$ cat pay.txt Name 1st 2nd 3th VBird 23000 24000 25000 DMTsai 21000 20000 23000 Bird2 43000 42000 41000 $ cat pay.txt|awk 'NR==1{printf "%10s %10s %10s %10s %10s\n",$1,$2,$3,$4,"Total"} \ NR>=2{total=$2+$3+$4 > printf "%10s %10d %10d %10d %10.2f\n",$1,$2,$3,$4,total}'Name 1st 2nd 3th TotalVBird 23000 24000 25000 72000.00DMTsai 21000 20000 23000 64000.00Bird2 43000 42000 41000 126000.00?
轉(zhuǎn)載地址:https://www.cnblogs.com/lzeffort/p/7242762.html
轉(zhuǎn)載于:https://www.cnblogs.com/alsodzy/p/8532419.html
總結(jié)
以上是生活随笔為你收集整理的linux中awk工具的使用(转载)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 默认轮播,鼠标移入停止,移出继续
- 下一篇: Vue.js:监听属性