① 關於linux的幾個指令尋求幫助awk、sed、grep 、vim。關於他們之間的關系,哪位用大白話指點一下迷津,不勝
vim 是文本編輯器,類似windows中的notepad,功能很強大,但需要去學習、適應一段時間才能使用得手。
grep命令是一個非常實用的shell命令,其功能為查找與命令後面內容匹配或不匹配的東西,可以與各種命令混合使用,效果很好,如:
1、查看文件a.txt中有"LINUX"這個詞的所有行:grep LINUX a.txt
2、查看文件a.txt中沒有"LINUX"這個詞的所有行:grep -v LINUX a.txt
3、結合管道命令:cat a.txt|grep LINUX (與1同),cat a.txt|grep -v LINUX (與2同)
sed、awk是兩個非常強大的shell工具(不單純是命令),他們各有超強的能力,甚至可以編程進行應用處理,關於他們的使用有專用的書介紹,內容非常多。sed多偏重於正則表達式方面的應用,實現查詢替換等操作。awk的程序處理能力顯示的更強。
② linux下sed使用
一、Sed簡介 Sed:Stream Editor 流式編輯器 又稱行編輯器,每次只編輯一行。Sed工作是在“模式空間”中進行的,並不操作源文件。對源文件無危害。 二、Sed使用格式 Sed命令的常用格式如下: (1)Sed [options] ‘script’ input_file… (2)Sed [options] –f script_file input_file… (3)Sed [options] ‘ADDR1,ADDR2command’ input_file… 例如:#sed ’1,2d’ fstab 就可以將fstab的前兩行刪除並顯示出來,但是它不會改變源文件。 #Sed ‘1,2!d’ fstab 表示刪除除第一行和第二行之外的所有行。 (4)Sed [options] ‘/PATTERN/command’ input_file…… &:s/l..e/&er/:表示引用前面匹配到的所有字元。 例如:sed ‘/[[:upper:]]/d’ binary.sh 表示刪除所有的大寫字母的行。 (5)Sed ‘/PATTERN1/,/PATTERN2/command’ input_file…… 說明:這表示從第一次被PATTERN1匹配到的行到第一次被PATTERN2匹配到的中間的所有行執行command命令。 三、Sed的常用選項: -n:只顯示sed匹配到的行。其餘行不顯示。下文有範例。 -i :可以直接操作原文件。默認情況下sed不會改變原文件,但是-i選項可以修改原文件,此選項應慎用。 -r:可以使用標准正則表達式。默認情況下sed只支持基本正則表達式,但是加上-r選項後則支持擴展正則表達式 -e:多腳本共用。可以同時執行多個命令。例如: 代碼如下: [root@localhost ~]# sed -e 's@@H1@g' -e 's@(l..e).@1r.@g' test He love His lover. She like Her liker. Dove love Her liker. 也可以這樣用,中間用分號隔開: 代碼如下: [root@localhost ~]# sed 's@@H1@g;s@(l..e).@1r.@g' test 四、使用示例 代碼如下: #sed -e 命令行處理 -a 新增 > sed -e '$ a wiu' test.txt #在test.txt的結尾處添加wiu 代碼如下: # 把-e換成-n > sed -n '$ a wiu' test.txt # 只顯示被處理的一行 代碼如下: # -c 替換多少行 為你制定的字元串,這里我的test.txt內容如圖 > sed -e '2,5c xiaowei' test.txt #把2-5行替換成字元串xiaowei 代碼如下: # 多命令執行 -e > sed -e '2,5c xiaowei' -e 's/cccc/wiu/' test.txt 代碼如下: # -i 不輸出 -s 替換 >sed -i 's/111111/wiu/g' test.txt 代碼如下: # i 插入 自定義的字元串 在test.txt的第二行插入xiaowei > sed -e '2i xiaowei' test.txt 代碼如下: # d 刪除輸入任何字元串 > sed -e '2d' test.txt #刪除第二行
③ Linux裡面sed和awk命令哪個重要
你好很高興回答您的問題:
既然接觸到了三劍客的sed和awk,對Linux應該是有些認知了吧.下面基於這個給您介紹下.
Linux的秘籍三劍客 grep,sed,awk是Linux命令,甚至是shell編程部分的核心技術.
掌握與數量可以加速處理文本速度.
grep擅長過濾與正則
sed擅長替換與增刪改查
awk擅長統計計算與取行取列
快收下下面的寶典修煉吧.
④ 如何使用linux的shell 命令輸出本地網頁數據 例如sed,awk,grep 指令
圖片中看到average throughput 放在了表格中,sed、awk等都是處理文本的,所以是對網頁的源文件進行處理的,需要查看你源文件中 該變數的前後文,才能寫出來
grep、sed一般是處理在同一行中的,內容,sed雖然也可以處理跨行的情況,不過比較難,所以建議使用awk進行處理。
⑤ linux里grep和egrep,fgrep的區別
1. grep簡介
grep (global search regular expression_r(RE) and print out the line,全面搜索正則表達式並把行列印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字元, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字元表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。
grep的工作方式是這樣的,它在一個或多個文件中搜索字元串模板。如果模板包括空格,則必須被引用,模板後的所有字元串被看作文件名。搜索的結果被送到屏幕,不影響原文件內容。
grep可用於shell腳本,因為grep通過返回一個狀態值來說明搜索的狀態,如果模板搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2。我們利用這些返回值就可進行一些自動化的文本處理工作。
2. grep正則表達式元字元集(基本集)
^
錨定行的開始 如:'^grep'匹配所有以grep開頭的行。
$
錨定行的結束 如:'grep$'匹配所有以grep結尾的行。
.
匹配一個非換行符的字元如:'gr.p'匹配gr後接一個任意字元,然後是p。
*
匹配零個或多個先前字元如:'*grep'匹配所有一個或多個空格後緊跟grep的行。 .*一起用代表任意字元。
[]
匹配一個指定范圍內的字元,如'[Gg]rep'匹配Grep和grep。
[^]
匹配一個不在指定范圍內的字元,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一個字母開頭,緊跟rep的行。
..
標記匹配字元,如'love',love被標記為1。
\<
錨定單詞的開始,如:'\<grep'匹配包含以grep開頭的單詞的行。
\>
錨定單詞的結束,如'grep\>'匹配包含以grep結尾的單詞的行。
x\{m\}
重復字元x,m次,如:'0\{5\}'匹配包含5個o的行。
x\{m,\}
重復字元x,至少m次,如:'o\{5,\}'匹配至少有5個o的行。
x\{m,n\}
重復字元x,至少m次,不多於n次,如:'o\{5,10\}'匹配5--10個o的行。
\w
匹配文字和數字字元,也就是[A-Za-z0-9],如:'G\w*p'匹配以G後跟零個或多個文字或數字字元,然後是p。
\W
\w的反置形式,匹配一個或多個非單詞字元,如點號句號等。
\b
單詞鎖定符,如: '\bgrep\b'只匹配grep。
3. 用於egrep和 grep -E的元字元擴展集
+
匹配一個或多個先前的字元。如:'[a-z]+able',匹配一個或多個小寫字母後跟able的串,如loveable,enable,disable等。
?
匹配零個或多個先前的字元。如:'gr?p'匹配gr後跟一個或沒有字元,然後是p的行。
a|b|c
匹配a或b或c。如:grep|sed匹配grep或sed
()
分組符號,如:love(able|rs)ov+匹配loveable或lovers,匹配一個或多個ov。
x{m},x{m,},x{m,n}
作用同x\{m\},x\{m,\},x\{m,n\}
linux基本命令grep egrep fgrep用法以及正則表達式
一、grep、egrep、fgrep命令
本文中主要介紹了linux系統下grep egrep fgrep命令和正則表達式的基本參數和使用格式、方法。(注釋:文中fg代表例子,)
1.1、基本定義:
grep(global search regular RE ) and print out the line,全面搜索正則表達式並把行列印出來)是一種強大的文本搜索工具,它只能使用基本的正則表達式來搜索文本,並把匹配的行列印出來。
grep是很常見也很常用的命令,它的主要功能是進行字元串數據的比較,然後符合用戶需求的字元串列印出來,但是主意,grep在數據中查找一個字元串時,是以「整行」為單位進行數據篩選的。
egrep命令等同於grep -E,利用此命令可以使用擴展的正則表達式對文本進行搜索,並把符合用戶需求的字元串列印出來。
fgrep命令等同於grep -F,它利用固定的字元串來對文本進行搜索,但不支持正則表達式的引用,所以此命令的執行速度也最快。
1.2、命令基本用法
grep [option] '搜索字元串' filename
grep常用選項:
-a :在二進制文件中,以文本文件的方式搜索數據
-c :計算找到'搜索字元串'的次數
-i :忽略大小寫
-v :反向查找,即顯示沒有'搜索字元串'內容的那行
-o :只顯示被模式匹配的字元串
-n :輸出行號
--colour(color):顏色顯示
-A:顯示匹配到字元那行的後面n行
-B:顯示匹配到字元那行的前面n行
-C:顯示匹配到字元那行的前後n行
例子:
1. :
格式: grep [option] pattern filename 注意: pattern如果是表達式或者超過兩個單詞的, 需要用引號引用. 可以是單引號也可雙引號, 區別是單引號無法引用變數而雙引號可以.
grep '\<Tom\>' file 包含單詞Tom的行
grep 'Tom savage' file 包含Tom savage的行
grep '^Tommy' file 包含以Tommy開頭的行
grep '\.bak$' file 包含以.bak結束的行
grep '[Pp]yramid' file 包含pyramid 或Pyramid的單詞的行
grep '[A-Z]' file 包含至少一個大寫字母的行
grep '[0-9]' file 包含至少一個數字的行
grep '[A-Z]...[0-9]' file 包含五個字元,以大寫開頭, 和一個數字結尾的行.
grep -w '[tT]est' file 包含單詞和test的行.
grep -s 'ken sun' file 找到包含ken sun的行, 但不列印行, 而是用來檢查退出狀態.
grep -v aaa file 列印不包含aaa的行.
grep -i cathy file 列印所有包含cathy的行, 而不考慮大小些.
grep -l 'dear cathy' * 列印包含dear cathy的文件的文件名清單.
grep -n tom file 列印匹配的行並追加行號.
grep "$LOGNAME" file 包含變數內容的行, 注意必須用雙引號, 單引號則無法引用變數.
grep '$name' file 列印包含字元$name的行.
2 : egrep = grep -E 可以使用基本的正則表達外, 還可以用擴展表達式. 注意區別.
擴展表達式:
+ 匹配一個或者多個先前的字元, 至少一個先前字元.
? 匹配0個或者多個先前字元.
a|b|c 匹配a或b或c
() 字元組, 如: love(able|ers) 匹配loveable或lovers.
(..)(..)\1\2 模板匹配. \1代表前面第一個模板, \2代第二個括弧裡面的模板.
x{m,n} =x\{m,n\} x的字元數量在m到n個之間.
egrep '^+' file 以一個或者多個空格開頭的行.
grep '^*' file 同上
egrep '(TOM|DAN) SAVAGE' file 包含 TOM SAVAGE 和DAN SAVAGE的行.
egrep '(ab)+' file 包含至少一個ab的行.
egrep 'x[0-9]?' file 包含x或者x後面跟著0個或者多個數字的行.
egrep 'fun\.$' * 所有文件裡面以fun.結尾的行.
egrep '[A-Z]+' file 至少包含一個大寫字母的行.
egrep '[0-9]' file 至少一個數字的行.
egrep '[A-Z]...[0-9]' file 有五個字元, 第一個式大寫, 最後一個是數字的行.
egrep '[tT]est' file 包含單詞test或Test的行.
egrep 'ken sun' file 包含ken sun的行.
egrep -v 'marry' file 不包含marry的行.
egrep -i 'sam' file 不考慮sam的大小寫,含有sam的行.
egrep -l "dear ken" * 包含dear ken的所有文件的清單.
egrep -n tom file 包含tom的行, 每行前面追加行號.
egrep -s "$name" file 找到變數名$name的, 不列印而是顯示退出狀態. 0表示找到. 1表示表達式沒找到符合要求的, 2表示文件沒找到.
3 fgrep 很簡單就是固化表達式的搜索.如:
fgrep "$name...[a-z]" file 就是在file裡面找到和字元$name...[a-z]一樣的行. 其中$和...等沒有轉義的意義.
http://hi..com/sei_zhouyu/item/c18e1a950d2e9eb5cc80e558
望採納
⑥ linux中grep命令的使用
1、linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用許可權是所有用戶。
2、格式
grep[options]
3、主要參數
[options]主要參數:
-c:只輸出匹配行的計數。
-I:不區分大小寫(只適用於單字元)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字元的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數:
\:忽略正則表達式中特殊字元的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<:從匹配正則表達式的行開始。
\>:到匹配正則表達式的行結束。
[ ]:單個字元,如[A]即A符合要求。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求。
。:所有的單個字元。
* :有字元,長度可以為0。
4、grep命令使用簡單實例:
$ grep 『test』d*
顯示所有以d開頭的文件中包含test的行。
$ grep 『test』aa bb cc
顯示在aa,bb,cc文件中匹配test的行。
$ grep『[a-z]\{5\}』 aa
顯示所有包含每個字元串至少有5個連續小寫字元的字元串的行。
⑦ linux命令sed與awk是干什麼用的,怎麼用
sed 可理解為 stream editor 的簡稱,即文本流編輯器。以行為單位處理文本,可以做插入行、刪除行、行內文本替換等操作。
awk 中存在 記錄 和 欄位 兩個關鍵概念,通常默認一行就是一個記錄,一個記錄又可以被指定分隔符(默認是空格或tab)分割為多個欄位。因此awk更為靈活與強大(並且有很多內置函數和變數可使用)。
關於具體用法,太多了。強大的東西總不是三言兩語能夠說盡的。網上有很多教程可以看,例如:
Sed - An Introction and Tutorial.doc
Awk - An Introction and Tutorial.doc
⑧ linux查找並輸出特定行和它的前一行且在後面再輸出一個空白行的命令
1.
您需求不太明確,輸出特定行,後面加空行沒有意義,比如說輸出1-3行,後面就是空的了,為啥還要加空行?
2.
實現方式,grep
+
sed
grep
-n
取行數,sed
-n
'n-1,n-2'
#注意實際用的時候,n-1要算出來,或者腳本裡面傳參數
3.
例:
[user@master
tmp]$
ll
|
awk
'{
print
$3
}'
cloudera-scm
clouderauser
hadoop
hdfs
hive
mapred
root
yarn
zookeeper
clouderauser
[user@master
tmp]$
ll
|
awk
'{
print
$3
}'|
grep
-n
yarn
9:yarn
[user@master
tmp]$
ll
|
awk
'{
print
$3
}'|
sed
-n
'8,10p'
root
yarn
zookeeper
⑨ 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
純手打,望採納,謝謝,遇到具體問題仍可繼續交流