日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

打开高效文本编辑之门_Linux Awk自定义变量与操作符

發布時間:2024/9/27 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 打开高效文本编辑之门_Linux Awk自定义变量与操作符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux awk之變量與操作符應用案例

聲明與簡介

AWK?是一種處理文本文件的語言,是一個強大的文本分析工具。awk通常用來處理結構化(固定格式)的文本文件, awk每接收文件的一行,然后執行相應的命令來處理文本。

本文是對awk的初步認識,主要結合數據以案例形式介紹怎樣定義和使用自定義變量以及常見的運算符的使用。

數據說明

emp_3_only.txt,該數據來自全量的員工表的前3行。結構為(員工號、員工的姓名、崗位、領導編號、雇傭日期、工資、獎金、部門編號)

7369,smith,clerk,7902,'1980-12-17',800,null,20 7499,allen,salesman,7698,'1981-2-20',1600,300,30 7521,ward,salesman,7698,'1981-2-22',1250,500,30

定義變量

這里的變量區別于系統變量,是用戶根據業務需要自定義的變量。

使用自定義變量

# 先打印員工的所有信息,再統計總工資數。定義如下腳本并保存到awk_var.awk內。BEGIN { FS=","; sum=0; }{ print $1"的工資是:"$6;sum=sum+$6; }END {print "\n 員工的所有工資之和為:"sum;}# 外部調用awk腳本 awk -f awk_var.awk emp_3_only.txt# 結果為: 7369的工資是:800 7499的工資是:1600 7521的工資是:1250員工的所有工資之和為:3650# 這里 Step1 通過定義自定義變量sum,初始化為0, Step2 隨文件的讀取,一行行的對工資字段進行累加 Step3 輸出累加后的值。注:1 這里BEGIN需要大寫。2 BEGIN必須和{在一行,它們之間可以無空格。

操作符號

操作符分為計算符、字符串運算符、賦值運算符、比較運算符、正則運算符。

常見運算符

常見的運算符如:+、-、*、/、++、--、%等。

# 通過運算符先將員工工資加1,然后再加100。這里用到了++、+。 awk -F',' '{print ++$6,$6+100}' emp_3_only.txt # 結果 801 901 1601 1701 1251 1351

字符串運算

# 這里演示的是通過空格連接字符串,這里額外加了分隔符”$”。 awk 'BEGIN{ \ str1="Hello"; \ str2="awk"; \ numstr="100"; \ print str1 "$"str2; print numstr++; \ }' #結果 Hello$awk 100

賦值運算符

常見的賦值運算符有 =、+=、-=、=、*=、%=。這里是把單一的賦值運算符”=”進行了延展即做常見運算后賦值。

# 使用賦值運算符演示 +=、%=的使用。 awk 'BEGIN{ \ initnum =plusnum=modenum = 100; \ plusnum += 20; \ modenum %= 3; \ print initnum "\t"plusnum"\t"modenum; \ }' # 結果 100 120 1# 其代碼等價于如下 awk 'BEGIN{ \ initnum = 100; \ plusnum = 100+20; \ modenum = 100%3; \ print initnum "\t"plusnum"\t"modenum; \ }'

比較運算符

常見比較運算符有>、>=、<=、==、!=、&&、||

# 輸出工資在1300和1700之間的員工編號和姓名。 awk -F"," '$6>=1300 && $6<1700 {print $1,$2,$6}' emp_3_only.txt #結果 7499 allen 1600

正則匹配符

常見比較運算符有~、!~。其中~即為匹配的意思,而!~是反向(匹配不到的情況)。

# 匹配員工姓名里含“a”的員工,并打印出員工號、姓名、工資。 awk -F"," '$2 ~"a" {print $1,$2,$6}' emp_3_only.txt #結果 7499 allen 1600 7521 ward 1250

?

總結

以上是生活随笔為你收集整理的打开高效文本编辑之门_Linux Awk自定义变量与操作符的全部內容,希望文章能夠幫你解決所遇到的問題。

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