sed(查詢替換) 與awk(提取字段)

2021-06-20 10:39:33 字數 1867 閱讀 2622

通常: sed 處理列  awk處理行 比較方便

sed是乙個基本的查詢替換程式sed -i   "s/^@//g"     檔案  #原地操作原檔案,進行替換

cat my.txt|sed s/a/a/ >n.txt  

(不指定列數,預設是包含a的第一列)將1.txt檔案中包含a的第一列中的a替換為a,並將結果寫入n.txt檔案中。該語句也可以在shell指令碼中使用

cat my.txt|sed s/a/a/2 >n.txt   

指定第二列,將1.txt檔案中包含a的第二列中的a替換為a,並將結果寫入n.txt檔案中。

cat './1.txt ' |sed s/a/a/g >n2.txt     將1.txt檔案中的所有a替換為a,並將結果寫入n2.txt檔案中。該語句也可以在shell指令碼中使用

ps -ef | grep tomcat|awk ' '  從標準輸入中提取第乙個、第二個字段

awk 用來從文字檔案中提取字段。預設地,字段分割符是空格,可以使用-f指定其他分割符,如:head -n 5 /etc/passwd|awk -f: ''

sed: sed是乙個基本的查詢替換程式。可以從標準輸入(比如命令管道)讀入文字,並將結果輸出到標準輸出(螢幕)。

該命令採用正規表示式(見參考)進行搜尋。

不要和shell中的萬用字元相混淆。比如:將linuxfocus 替換為linuxfocus :cat text.file | sed  s/linuxfocus/linuxfocus/ > newtext.file

sed s/a/a/  從標準輸入中讀取文字,將文字中的a替換為a (預設是將含有a的第一列替換為a)

如果指定要替換的列數,則從含有要替換的字元對應的列中進行替換,如下:

sed s/a/a/2  從標準輸入中讀取文字,將文字中含有的a的第二列替換為a

sed s/a/a/3 從標準輸入中讀取文字,將文字中含有的a的第三列替換為a

如果想要替換所有的字串,則使用sed s/a/a/g ,如下圖:

awk 用來從文字檔案中提取字段。預設地,字段分割符是空格,可以使用-f指定其他分割符。

cat file.txt | awk -f, ''這裡我們使用,作為字段分割符,同時列印第乙個和第三個字段。

如果該檔案內容如下: adam bor, 34, indiakerry miller, 22, usa,命令輸出結果為:adambor, indiakerry miller, usa

也可以使用cut命令,對每行資料進行分析,如下:

sed與awk去除重複行

unixf 1 如果僅僅是刪除內容完全一樣重複行 則可以使用sort先進行排序 然後使用 uniq進行刪除重複資料即可 例如 cust.txt txt 130000006800,17,151,01,250100 130000006800,17,151,01,250101 1300001077,17,...

Linuxshell程式設計之awk與sed使用詳解

linux shell程式設計之awk的用法 1.awk的使用 基本功能 在檔案或字串中基於指定規則瀏覽和抽取資訊。awk抽取資訊後,才能進行其他文字操作。完整的awk指令碼通常用來格式化文字檔案資訊。呼叫方式 1.命令列方式 2.將所有awk命令插入乙個檔案,並使awk程式可執行,然後使awk命令...

sed命令與awk命令基礎

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