sheel中sed及awk命令詳細全解

2021-10-10 23:20:14 字數 1970 閱讀 9389

主要用於增刪改

1.行前新增

(1)根據行號

sed 『i #####』 test.log 所有行前新增一行,內容為#####

sed -i 『i #####』 test.log

sed 『1 i #####』 test.log 第一行前新增一行,內容為#####

sed 『2,5 i #####』 test.log 2-5行每行新增一行,內容為#####

sed 『5,$ i #####』 test.log 5到最後一行新增一行,內容為#####

sed 『$ i #####』 test.log 最後一行新增一行,內容為#####

(2)根據正則

sed 『/ens33/i####』 test.log 包含ens33的行前新增一行,內容為#####

sed 『/ens33|fi/i####』 test.log 包含ens33或fi的行前新增一行,內容為#####

2.行後新增

將i換成a就是行前,其他一樣

3.整行替換

將i換成c就是整行替換,其他一樣

sed 『2,5 c #####』 test.log 將2-5行整體替換為乙個#######

sed 『/ens33/c####』 test.log 包含ens33的行替換為#####

sed 『/ens33|fi/c####』 test.log 包含ens33或fi的行替換為#####

4.整行刪除

將i換成d,再把內容去掉,其他一樣

sed 『1,3 d』 test.log

sed 『/ens33/d』 test.log

5.字串替換,插入與刪除

sed 『s/ff/####/』 test.log 把每一行第一次出現的ff換成######

sed 『s/ff/####/2』 test.log 把每一行第二次出現的ff換成######

sed 『s/ff/####/g』 test.log 把ff全部換成######

sed 『s/ff/####/g[i]』 test.log 把ff全部換成######

sed 『1,7 s/ens33/####/』 test.log 把1-7行的ens33全部換成######

sed 』 s/ens33//opt/software/』 test.log 要替換的內容含有/時,需要轉義,其他都不需要

刪除:把替換的內容設為空即可

sed 『1,7 s/ens33//g』 test.log

插入:轉為替換 在ens33後面插入insert

sed 『s/ens33/ens33insert/』 test.log

主要用來提取資訊

1.print

每行全部內容

每行第二個內容

每行第乙個和第三個內容

2.分隔符

awk -f 『sep』 『』 指定分隔符為sep 預設為空格,輸出第乙個內容

空格作為分割符,可以不寫,下面兩種意思一樣

awk -f 』 』 『』 指定分隔符為空格,輸出第乙個內容

awk 『』 預設分隔符為空格,輸出第乙個內容

其他分隔符

awk -f 『/』 『』 指定分隔符為/輸出第乙個內容

3.配合正則

awk -f 『/』 『/regexp/』 找到包含regexp的行,然後以/為分隔符輸出第乙個內容

4.多次篩選,即兩個awk語句,用|連線

awk -f 『/』 『/noprefixroute ens33/』|awk -f 』 』 『』

使用command|awk … 或者

awk… file

示例:獲取當前虛擬機器ip

方法1:ip addr|awk -f 『/』 『/noprefixroute ens33/』|awk -f 』 』 『』

方法2:ip addr>test.log

awk -f 『/』 『/noprefixroute ens33/』|awk -f 』 』 『』 test.log

sed命令與awk命令基礎

命令格式 sed option script file e script 在處理輸入時,將script中指定的命令新增到已有的命令中 f file 在處理輸入時,將file中指定的命令新增到已有的命令中 n 不產生命令輸出,使用print命令來完成輸出 s s命令會用斜線間指定的第二個文字字串來替換...

awk及sed的使用小結

awk,sed是linux比較複雜的兩個命令,在處理格式化的檔案對我們有很大的幫助,最近,學習了這方面的知識,做了下總結。1awk 語法 awk ffield separator begin pattern end file awk主要處理格式化的檔案,讀取檔案的一行,分析該行,並通過分隔符獲取到各...

Shell命令之sed和awk

1,sed 刪除指定行。sed i d filename 2,sed 刪除多行。sed i d filename 3,sed刪除最後一行。sed i d filename 4,sed替換文字檔案中所有出現的字元。sed i s abc def g filename 將文字中所有的abc替換成def。...