grep sed awk個人備忘(補充中)

2021-08-22 17:59:00 字數 2296 閱讀 9593

《詳細grep、sed、awk》:

目錄

1. grep

2. sed

3. awk

3.2 疑問點

流編輯器,過濾和替換文字。

用法:sed [option]... [input-file]...

sed [選項] '位址 命令' file

選項描述

-n不列印模式空間

-e執行指令碼-表示式來處理

-f指令碼檔案的內容新增到命令被執行

-i修改原始檔

-r使用擴充套件正規表示式

命令m描述

s/regexp/replacement/

t替換字串

pd列印當前模式空間

pd列印模式空間的第一行

ds刪除模式空間,並且開始下乙個迴圈

ds刪除模式空間的第一行,開始下乙個迴圈

=d列印當前行號

a \text

d當前行追加文字

i \text

d當前行上面插入文字

c \text

s所選行替換文字

ql立即退出sed指令碼

rz追加文字來自檔案

位址m描述

first~step

b步長,每step行,從first開始

$p匹配最後一行

/regexp/

z正規表示式匹配行

number

z只匹配制定行

addr1、addr2

k開始匹配addr1開始,直接addr2行結束

addr1,+n

c從addr1行開始,向後的n行

addr1,~n

c從addr1行開始,到n行結束

awk是乙個處理文字的程式語言工具,能用簡短的程式處理輸入檔案、資料排序、計算以及生產報表等等。

在linux系統下預設awk是gawk,它是awk的gun版本。可以通過命令檢視應用的版本:ll /bin/awk

基本的命令語法:awk option 'patten ' file

其中pattern表示awk在資料中查詢的內容,而action是在找到匹配內容時所執行的一系列命令。花括號用於根據特定的模式對一系列指令進行分組。

pattern引數可以是egrep正規表示式的任意乙個,使用/re/再加上一些樣式匹配,匹配方式與sed類似,也可以使用「,」分開兩樣式以選個某個範圍。

awk處理的工作方式與資料庫類似,支援對記錄和字段處理,這也是grep和sed不能實現的。

在awk中,預設的情況下將文字檔案中一行視為乙個記錄,而將一行中的某一部分作為記錄中的乙個字段,用1,2,3....數字的方式順序的表示行(記錄)中的不同字段。用$後跟數字,引用對應的字段,以逗號分割,0表示整個行。

選項m描述

-f program-file

c從檔案中讀取awk程式原始檔

-f fs

z指定fs為輸入字段分隔符

-v var=value

b變數賦值

--posix

z只支援posix正規表示式

pattern

description

begin

g給程式賦予初始狀態,先執行的工作

endc程式結束之後執行的一些掃尾工作

/regular expression/

w為每個輸入記錄匹配正規表示式

pattern && pattern

l邏輯and,滿足兩個模式

pattern || pattern

邏輯或,滿足其中乙個模式

! pattern

l邏輯非,不滿足模式

pattern1,pattern2

f範圍模式,匹配所以1的記錄,直到匹配到模式2

1.q:如下-f"[ ,]+" 什麼含義?

[root@vm_0_7_centos tmp]# cat test

i am cai,my qq is

[root@vm_0_7_centos tmp]# awk -f"[ ,]+" '' test

cai is

a:見如下正規表示式說明中和+

也即以乙個或多個"空格"或","做為字段分隔符。

Docker(個人備忘)

ubuntu server 20.04 docker安裝ubuntu docker 安裝 docker配置支援nvidia gpu add the package repositories distribution etc os release echo id version id curl s l...

vim操作 個人備忘

root目錄 使用者家目錄 一般模式 移動游標。i.o.a.r按鍵進入命令模式。按 q退出,wq儲存退出,加!強制執行以上操作 1.箭頭上下左右移動游標,下移30行 30下箭頭 2.ctrl f pagedown ctrl b pageup 3.n游標向右移動n個空格 4.0 home end 6....

ReactNative菜鳥備忘錄 個人備忘

環境搭建 入門q a q 建立新專案,react native init awesomeproject命令長時間無響應,或報錯shasum check failed a 由於眾所周知的網路原因,react native命令列從npm官方源拖 時會遇上麻煩。請將npm倉庫源替換為國內映象 npm co...