markdown-it
demo
Delete
Submit
clear
permalink
awk 是一個功能強大的文本處理工具,在 Linux 系統中常被用來處理和分析文本數據。以下是 awk 的一些基本用法: 1. 基本語法: ``` awk 'pattern { action }' filename ``` 其中 pattern 是選擇的條件,若條件成立則執行後面的 action,filename 是待處理的文本文件。 2. 印出指定列: ``` awk '{print $1,$3}' filename ``` 這個例子會印出文件中每一行的第一和第三個欄位。 3. 條件選擇: ``` awk '$3 > 10 {print $1}' filename ``` 這個例子會印出文件中第三個欄位大於 10 的行的第一個欄位。 4. 計算欄位之和: ``` awk '{sum += $2} END {print sum}' filename ``` 這個例子會將文件中第二個欄位的值加總起來並印出總和。 5. 自定義分隔符號: ``` awk -F':' '{print $1}' filename ``` 這個例子將分隔符號設置為冒號,並印出每行的第一個欄位。 以上是 awk 的一些基本用法,讓你可以開始在 Linux 系統中使用 awk 工具處理文本數據。 ```bash #NF: colums in one line #NR: current line #FS: split charactor last | awk '{print $1 "\t lines: " NR "\t columes: " NF}' cat /etc/passwd | awk '{FS=":"} $3 < 10 {print $1 "\t " $3}' cat /etc/passwd | awk 'BEGIN {FS=":"} $3 < 10 {print $1 "\t " $3}' # get CPU idle percent for test top -n 1 | awk '{FS=","}NR==3{printf "%s\n",$0; printf "%s\n",$4}' # get CPU idle percent top -n 1 | awk '{FS=","}NR==3{printf "%s\n",$4}' | awk '{printf "%f", $2}' ``` pay.txt ``` text Name 1st 2nd 3th VBird 23000 24000 25000 DMTsai 21000 20000 23000 Bird2 43000 42000 41000 ``` ```bash 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 Total VBird 23000 24000 25000 72000.00 DMTsai 21000 20000 23000 64000.00 Bird2 43000 42000 41000 126000.00 ``` /tmp/data.txt ``` foo bar 12,300.50 foo bar 2,300.50 abc xyz 1,22,300.50 ``` ```bash awk '{ gsub(",","",$3); print $3 }' /tmp/data.txt ``` ```bash VAR=3 echo $VAR echo | awk -v env_var="$VAR" '{print "The value of VAR is " env_var}' #Using output of awk to run command awk '{ system("openssl s_client -connect host:port -cipher " $1) }' ciphers.txt awk '{print $0}' <ciphers.txt | xargs -I{} openssl s_client -connect host:port -cipher {} >>results.txt ```
html
source
debug
Fork me on GitHub