Linux 常用命令 -- awk和sed

一、awk幾個常見內建變數

FS 表示欄位分隔符

OFS 表示輸出資料的欄位分隔符

RS 表示記錄分隔符

ORS 表示輸出欄位的行分隔符

NF 表示欄位數

NR 表示記錄數

——-

1。1、區間選擇,比如我們在 1、2、3 之間,使用 awk ‘$0>2’ 指令列印大於2的資料3

echo “

1

2

3

” | awk ‘$0>2’

1。2、記錄數:NR,輸入指令去掉列印第一行的資料

awk ‘NR>1’ /tmp/first。txt

1。3、輸出顯示的from hello mryt_qa被空格分隔成三個欄位且first。txt檔案中的三條資料欄位數都是3

awk ‘{print NR,NF}’ /tmp/first。txt

1。4、awk ‘BEGIN{FS=“h”}{print NR,NF,$1,$2}’ /tmp/first。txt

1。5、awk ‘OFS=’‘-’‘{print $1,$2,$3}’ /tmp/first。txt

1。6、awk ‘BEGIN{print 100/3}’

——-

二、sed[addr]X[opptions],其中 [] 定義了一個範圍,x位是具體操作,options表示進行資料修改的選項,常用的幾個:

-e 表示可以指定表示式

sed -n ‘2p’ 2 表示列印第二行的資料

s 表示查詢並替換

-i 表示直接修改原始檔

-E 支援擴充套件表示式

2。1、sed指令將qa123替換成mryt_qa

sed ‘s#qa123#mryt_qa#’ /tmp/first。txt

2。2、把以q開頭的三個字元都替換成xx,後面的23 沒有改變,是因為需要新增一個額外的標記符 /g

sed ‘s/q。。/xx/g’ /tmp/first。txt

三、問awk和sed最大的區別是什麼?

awk用於資料的提取,sed更專注用於資料的修改,sed 的重要作用是完成對資料的增刪改查工作:

d 是刪除

p 是列印

s 是查詢並進行替換

\1 \2 可以根據匹配的資料進行分組處理