sed 可理解為 stream editor 的簡稱,即文本流編輯器。以行為單位處理文本,可以做插入行、刪除行、行內文本替換等操作。
awk 中存在 記錄 和 欄位 兩個關鍵概念,通常默認一行就是一個記錄,一個記錄又可以被指定分隔符(默認是空格或tab)分割為多個欄位。因此awk更為靈活與強大(並且有很多內置函數和變數可使用)。
關於具體用法,太多了。強大的東西總不是三言兩語能夠說盡的。網上有很多教程可以看,例如:
Sed - An Introction and Tutorial.doc
Awk - An Introction and Tutorial.doc
2. 《sed與awk》txt下載在線閱讀全文,求百度網盤雲資源
《sed與awk》((美)多爾蒂/(美)羅賓斯)電子書網盤下載免費在線閱讀
鏈接: https://pan..com/s/1BXD8eWjP1_w5NZBoYINhwg
書名:《sed與awk》
作者:(美)多爾蒂/(美)羅賓斯
譯者:張旭東/楊作梅/田麗華
豆瓣評分:8.0
出版社:機械工業出版社
出版年份:2003-8
頁數:432
內容簡介:本書在一開始就給出一個概述和指南,論述了從grep到sed再到awk不斷改進的功能。sed和awk具有相同的命令行語法,以腳本的形式接收用戶的命令。因為所有這三個程序都使用UNIX正則表達式,因此書中用一章的篇幅來介紹UNIX的正則表達式語法。
然後,本書介紹如何編寫sed腳本。從編寫幾行簡單的腳本開始,學習進行手工編輯操作的其他基本命令和高級命令,以及由此引入的簡單程序結構。這些高級命令包括用於處理保持空間、即一個等量齊觀時緩沖區的命令。
3. awk、sed和shell有什麼區別和關系
awk和sed都是文本流編輯器,通常都是以行(記錄)為單位處理文本;
awk更是可以將一個記錄根據指定分隔符分割為多個欄位,然後處理欄位,更為靈活。awk甚至可以看作一門編程語言,內部語言環境(語法)類似C語言。
shell是linux/unix的人機交互介面,將用戶輸入的命令翻譯為內核可以執行的指令,其界面可以認為是我們平時看到的命令終端窗口。shell中可以調用外部程序,例如sed和awk。
shell+sed+awk的組合非常強大,足以應付日常操作需求。
4. Linux裡面sed和awk命令哪個重要
你好很高興回答您的問題:
既然接觸到了三劍客的sed和awk,對Linux應該是有些認知了吧.下面基於這個給您介紹下.
Linux的秘籍三劍客 grep,sed,awk是Linux命令,甚至是shell編程部分的核心技術.
掌握與數量可以加速處理文本速度.
grep擅長過濾與正則
sed擅長替換與增刪改查
awk擅長統計計算與取行取列
快收下下面的寶典修煉吧.
5. 多行文本復制,如何用sed或awk或別的工具實現
sed-rn'p;/bbb/,/ddd/H;/ddd/{g;s/^ //;p}'file.txt
說明:
sed內部有兩個空間,一個模式空間,一個保留空間。
通常sed將文本內容逐行讀入模式空間進行處理,保留空間僅用於暫時保留內部數據用於與模式空間的數據交換。可以這么理解:模式空間用於與外部的數據交換,保留空間用於sed內部的數據交換,最終還是要通過模式空間輸出。
/bbb/,/ddd/H; 逐行處理時將bbb~ddd區段的文本從sed的模式空間附加到保留空間內,每行內容之間以
分割,因此,最終保留空間內容為:
bbb
ccc
ddd
/ddd/{g;s/^
//;p} 處理到ddd這行後,通過g命令獲取保留空間內容到模式空間,通過s替換命令去除開頭的
,p命令列印。
sed除了可以將輸出重定向到新文件外,加 -i 選項還可以直接改寫原文件。
------------------------------------------
也可以通過vim手動編輯。
vim file.txt
游標定位於第二行,即bbb這行
輸入命令 3yy ,即向下復制三行
游標定位於第五行,即ddd這行
輸入命令 p,粘貼
輸入命令 :wq , 保存並退出
6. linux shell中的awk和grep的使用方法和主要作用,求詳解~\(≧▽≦)/~
awk 是一種編程語言,grep是一個工具;
你要時問c語言的用法,我怎麼回答呢?
而grep怎麼用?man grep
7. awk和sed是做什麼用的,有什麼區別
都是shell腳本中可用的處理字元數據的函數,都能對日誌文件進行批處理。
只不過兩種的命令設置和處理功能不完全相同,特別是awk已經發展成了一個小語言了,功能非常強大。
8. Linux中sed命令同awk命令有什麼區別呢,具體該如何使用呢
sed 多用來編輯修改
awk 多用來列印
sed grep awk 俗稱三劍客
使用上sed 和 awk擴展下來,內容可多了,甚至awk可以被當作一種腳本工具,單獨出書,sed簡單的用法增刪改查都是可以直接網路到的,awk的列印也是。
例如 sed中
s 替換
sed 's/zhangsan/lisi/' yourfile 就是將zhangsan替換為lisi ,列印不執行
加上i後才真正執行 sed -i 's/zhangsan/lisi/' yourfile
d 刪除
sed '/zhangsan/d' yourfile
sed -i '/zhangsan/d' yourfile
a 追加
sed -i '/zhangsan/alisi' yourfile
i 前插
sed -i '/zhangsan/ilisi' yourfile
p 列印
sed -n '/zhangsan/p' yourfile
因為它本身也會列印一般,所以加 -n 不默認列印
awk
-F 指定分隔符
awk -F ':' '/^root/{print $7}' /etc/passwd
列印以 root開頭所在行,以「:」為分隔符,列印第七列
其效果就是列印了root的shell
純手打,望採納,謝謝,遇到具體問題仍可繼續交流
9. awk或者sed 替換文件的內容
sed 里如果用變數,使用雙引號
sed -i "s/^HOSTNAME/HOSTNAME=$NAME/g" network
或者隔離出來
sed -i 's/^HOSTNAME/HOSTNAME='$NAME'/g' network
10. awk和sed有什麼區別
Linux sed命令是利用腳本來處理文本文件。sed可依照腳本的指令來處理、編輯文本文件。sed主要用來自動編輯一個或多個文件、簡化對文件的反復操作、編寫轉換程序等。
Linux awk命令是一種處理文本文件的語言,是一個強大的文本分析工具。之所以叫AWK是因為其取了三位創始人Alfred Aho、Peter
Weinberger和Brian Kernighan的Family Name的首字元。
主要區別如下:
1、sed是一種非互動式且面向字元流的編輯器,awk則是一門模式匹配的編程語言,因為它的主要功能是用於匹配文本並處理,同時它有一些編程語言才有的語法,例如函數、分支循環語句、變數等等,當然比起我們常見的編程語言,AWK相對比較簡單。
2、sed一般對行進行操作,awk對列進行操作。
3、sed擅長數據修改,awk擅長數據切片,數據格式化,功能最復雜。
4、sed全稱Stream Editor,擅長對文件做數據做修改的操作,非常高效。
5、awk更適合格式化文本,對文本進行較復雜格式處理,awk程序對輸入文件的每一行進行操作;awk是一門解釋型的編程語言,文本處理、輸出格式化的文本報表、執行算數運算、執行字元串操作等等。