Linux 三劍客 Awk、Sed、Grep 命令詳解

2021-02-19 釋然IT雜談
Linux三劍客Awk命令詳解

命令名稱

Awk  pattern scanning and processing language

命令作用

對文本和數據進行處理

詳細說明

awk 是一種程式語言,用於在linux/unix下對文本和數據進行處理。數據可以來自標準輸(stdin)、一個或多個文件,或其它命令的輸出。它在命令行中使用,但更多是作為腳本來使用。awk有很多內建的功能,比如數組、函數等,這是它和C語言的相同之處,靈活性是awk最大的優勢。

語法格式

awk [options] 'scripts' var=value filename

常用參數

-v var=value 賦值變量,將外部變量傳遞給awk

腳本基本結構

awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' filename

一個awk腳本通常由BEGIN語句+模式匹配+END語句三部分組成,這三部分都是可選項

工作原理:

第二步從文件或標準輸入讀取一行,然後再執行pattern語句,逐行掃描文件到文件全部被讀取

實例展示:

echo "hello " | awk 'BEGIN{ print "welcome" } END{ print "2017-08-08" }'
welcome
2017-08-08

echo -e "hello" | awk 'BEGIN{ print "welcome" } {print} END{ print "2017-08-08" }'
welcome
hello
2017-08-08
#不加print參數時默認只列印當前的行

echo|awk '{ a="hello"; b="nihao"; c="mingongge"; print a,b,c; }'
hello nihao mingongge
#使用print以逗號分隔時,列印則是以空格分界

echo|awk '{ a="mgg"; b="mingg"; c="mingongge"; print a" is "b" or "c; }'
mgg is mingg or mingongge
#awk的print語句中雙引號其實就是個拼接作用

Awk的變量

內置變量

$0   #當前記錄
$1~$n #當前記錄的第N個欄位
FS   #輸入欄位分隔符(-F相同作用)默認空格
RS   #輸入記錄分割符,默認換行符
NF   #欄位個數就是列 
NR   #記錄數,就是行號,默認從1開始
OFS  #輸出欄位分隔符,默認空格
ORS  #輸出記錄分割符,默認換行符 

外部變量

[mingongge@ ~]#a=100
[mingongge@ ~]#b=100
[mingongge@ ~]#echo |awk '{print v1*v2 }' v1=$a v2=$b
10000

Awk運算與判斷

算術運算符

+ - 加減
* / & 乘 除 求餘
^ *  求冪
++ -- 增加或減少,作為前綴或後綴

[mingongge@ ~]#awk 'BEGIN{a="b";print a,a++,a--,++a;}'
b 0 1 1

[mingongge@ ~]#awk 'BEGIN{a="0";print a,a++,a--,++a;}'
0 0 1 1

[mingongge@ ~]#awk 'BEGIN{a="0";print a,a++,--a,++a;}'
0 0 0 1

#和其它程式語言一樣,所有用作算術運算符進行操作,操作數自動轉為數值,所有非數值都變為0

賦值運算符

= += -= *= /= %= ^= **=

正則運算符

~ !~  匹配正則表達式/不匹配正則表達式

邏輯運算符

||  &&  邏輯或  邏輯與

關係運算符

< <= > >= != = 

其它運算符

$   欄位引用 
空格 字符串連結符
?:   三目運算符
ln   數組中是否存在某鍵值

Awk正則

^    行首定位符
$    行尾定位符
.    匹配任意單個字符
*    匹配0個或多個前導字符(包括回車)
+    匹配1個或多個前導字符
?    匹配0個或1個前導字符 
[]   匹配指定字符組內的任意一個字符/^[ab]
[^]  匹配不在指定字符組內的任意一個字符
()   子表達式
|    或者
\    轉義符
~,!~ 匹配或不匹配的條件語句
x{m} x字符重複m次
x{m,} x字符至少重複m次
X{m,n} x字符至少重複m次但不起過n次(需指定參數-posix或--re-interval)

Linux三劍客Sed命令詳解

命令名稱

Sed 一個強大的流式文本編輯器

詳細說明

sed是一種流編輯器,也是文本處理中非常好的工具,配合正則使用更強大處理時,把當前處理的行存儲在臨時緩衝區中,稱為「模式空間」,接著用sed命令處理緩衝區的內容,完成後輸出到屏幕,接著處理下一行.

命令格式

 sed [options] 'command' file(s)
 sed [options] -f scriptfile file(s)

常用參數

-e #以指定的指令來處理輸入的文本文件
-n  #取消默認輸出(如果和p命令同時使用只會列印發生改變的行)
-h #幫助
-V #顯示版本信息

常用命令

a #在當前行下面插入文本
i #在當前行上面插入文本
c #把選定的行改為新的文本
d #刪除,刪除選擇的行
D #刪除模板塊的第一行 
s #替換指定字符
h #拷貝模板塊的內容到內存中的緩衝區
H #追加模板塊的內容到內存中的緩衝區
g #獲得內存緩衝區的內容,並替代當前模板塊中的文本 
G #獲得內存緩衝區的內容,並追加到當前模板塊文本的後面 
l #列表不能列印字符的清單
n #讀取下一個輸入行,用下一個命令處理新的行而不是用第一個命令
N #追加下一個輸入行到模板塊後面並在二者間嵌入一個新行,改變當前行號碼
p #列印匹配的行
P #(大寫)列印模板的第一行
q #退出Sed
b #lable 分支到腳本中帶有標記的地方,如果分支不存在則分支到腳本的末尾
r #file 從file中讀行
t #label if分支,從最後一行開始,條件一旦滿足或者T,t命令,將導致分支到帶有標號的命令處,或者到腳本的末尾
T #label 錯誤分支,從最後一行開始,一旦發生錯誤或者T,t命令,將導致分支到帶有標號的命令處,或者到腳本的末尾
w #file 寫並追加模板塊到file末尾**
W #file 寫並追加模板塊的第一行到file末尾**
! #表示後面的命令對所有沒有被選定的行發生作用** 
= #列印當前行號碼**
# #把注釋擴展到下一個換行符以前**

Sed替換命令

g #表示行內全面替換(全局替換配合s命令使用)
p #表示列印行 
w  #表示把行寫入一個文件 
x #表示互換模板塊中的文本和緩衝區中的文本 
y #表示把一個字符翻譯為另外的字符(但是不用於正則表達式) 
1  #子串匹配標記 
& #已匹配字符串標記

Sed正則

^ #匹配行開始 
$ #匹配行結束
. #匹配一個非換行符的任意字符
* #匹配0個或多個字符
[] #匹配一個指定範圍內的字符
[^]  #匹配一個不在指定範圍內的字符 
(..) #匹配子串
&  #保存搜索字符用來替換其他字符
< #匹配單詞的開始
>  #匹配單詞的結束
x{m} #重複字符x,m次
x{m,} #重複字符x,至少m次 
x{m,n} #重複字符x,至少m次,不多於n次

Sed常用實例

1、替換操作

echo "hello world" |sed 's/ /-/1g'
hello-world 
#從第一個空格開始全局替換成-,只不過文本中只有一個空格

2、刪除操作

sed '/^$/d' filename #刪除空白行

sed '2d' filename #刪除第二行

sed '2,$d' filename #刪除第二直到未尾所有行

sed '$d' filename #刪除最後一行

sed '/^test/'d filename #刪除以test開頭行

3、匹配替換

echo "hello world" |sed 's/w+/[&]/g'
[hello] [world]
echo "hello world" |sed 's/w+/"&"/g'
"hello" "world"
#w+匹配每一個單詞,&表示匹配到的字符串

echo AAA bbb |sed 's/([A-Z]+) ([a-z]+)/[2] [1]/'
[bbb] [AAA]
#子串匹配替換

4、選定範圍

sed -n '/= 0/,/max/p' svnserve.conf
#min-encryption = 0
#max-encryption = 256

#所有在=0到max範圍內的行都會被列印出來

5、sed多點編輯功能(-e)

[root@centos001 ~]#cat -n test 
1  this is a test file
2  welcome
3  to
4  here
5  hello WORLD
6
7  linux centos6.8
8  redhat

sed -e '2,6d' -e 's/linux centos6.8/Linux Centos6.8/' test
this is a test file
Linux Centos6.8
redhat
#如果兩條命令功能一樣,那麼就需要用到下面的參數

sed --expression='s/linux centos6.8/Linux Centos6.8/' --expression='s/to/TO/' test**
this is a test file
welcome
TO
here
hello WORLD
Linux CenTOs6.8
redhat

6、讀入與寫入

[root@centos001 ~]#cat test1
welcom 
to 
here

[root@centos001 ~]#sed '/here/r test1' test
this is a test file
welcome
to
here
#welcom
to
here#
hello WORLD
linux centos6.8
redhat

#將test1的文件內容讀取顯示所有匹配here行的後面
sed -n '/centos6.8/w test2' test

[root@centos001 ~]#cat test2
linux centos6.8

#將test文件匹配到centos6.8的所有行都寫入到test2文件中,文件可以不存在.
#如果文件存在,就會被重定向不是追加

7、追加與插入

[root@centos001 ~]#sed '/^l/a2017-08-08' test2
linux centos6.8
2017-08-08
#在匹配以l開頭的行的後面追加2017-08-08

[root@centos001 ~]#sed '1a2017-08-08' test2
linux centos6.8
2017-08-08
#在第一行的後面追加2017-08-08

[root@centos001 ~]#sed '/^l/i2017-08-08' test2
2017-08-08
linux centos6.8
#在匹配以l開頭的行的前面插入2017-08-08
#######以上操作是不會改變文件內容################

[root@centos001 ~]#sed -i '/^l/i2017-08-08' test2
[root@centos001 ~]#cat test2
2017-08-08
linux centos6.8

8、其它命令實例

[root@centos001 ~]#cat -n test2
 1 2017-08-08
 2 linux centos6.8
 3 08
 4
 5 test

[root@centos001 ~]#**sed '/08/{ n; s/l/L/; }' test2
2017-08-08
Linux centos6.8
08
test
#如果08匹配到就跳到下一行,將小寫l替換成大寫,注意到第三行也是被匹配到
#但是後面的條件不滿足,所有沒有被替換

[root@centos001 ~]#sed '1,4y/8/9/' test2
2017-09-09
linux centos6.9
09
test
#將1至4行所有的數字8替換成9

[root@centos001 ~]#**sed '1q' test2**
2017-08-08
#列印第一行內容後退出

9、列印奇數或公偶數行

[root@centos001 ~]#sed -n 'p;n' test2
20170808
08

[root@centos001 ~]#sed -n 'n;p' test2
linux centos6.8
test

[root@centos001 ~]#sed -n '1~2p' test2
20170808
08

[root@centos001 ~]#sed -n '2~2p' test2
linux centos6.8
test

10、列印匹配字符串行的下一行

[root@centos001 ~]#sed -n '/linux/{n;p}' test2
08

[root@centos001 ~]#awk '/linux/{getline; print}' test2
08

Linux三劍客Grep 命令詳解

命令名稱

grep

命令作用

文本查找或搜索工具

詳細說明

同樣可以配合正則表達式來搜索文本,並將匹配的行列印輸出,也可用於過濾與搜索特定字符串,使用十分靈活

常用參數

-a  #不要忽略二進位數據
-A  #除了顯示符合範本樣式的那一行之外,並顯示該行之後的內容
-b  #在顯示符合範本樣式的那一行之外,並顯示該行之前的內容
-B  #除了顯示符合樣式的那一行之外,並顯示該行之前的內容
-c  #計算符合範本樣式的列數
-C  #除了顯示符合範本樣式的那一列之外,並顯示該列之前後的內容
-d  #當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep命令將回報信息並停止動作
-e  #指定字符串作為查找文件內容的範本樣式
-E  #將範本樣式為延伸的普通表示法來使用,意味著使用能使用擴展正則表達式
-f  #指定範本文件,其內容有一個或多個範本樣式,讓grep查找符合範本條件的文件內容,格式為每一列的範本樣式
-F  #將範本樣式視為固定字符串的列表
-G  #將範本樣式視為普通的表示法來使用
-h  #在顯示符合範本樣式的那一列之前,不標示該列所屬的文件名稱
-H  #在顯示符合範本樣式的那一列之前,標示該列的文件名稱
-i  #忽略字符大小寫的差別
-l  #列出文件內容符合指定的範本樣式的文件名稱
-L  #列出文件內容不符合指定的範本樣式的文件名稱
-n  #在顯示符合範本樣式的那一列之前,標示出該列的編號
-q  #不顯示任何信息
-R/-r #此參數的效果和指定「-d recurse」參數相同
-s  #不顯示錯誤信息
-v  #反轉查找
-V  #顯示版本信息 
-w  #只顯示全字符合的列
-x  #只顯示全列符合的列
-y  #此參數效果跟「-i」相同
-o  #只輸出文件中匹配到的部分
正則表達式
^  #匹配以XX開頭的行
$  #匹配以XX結尾的行

常用實例

1、在多個文件中查找:

grep "file" file_1 file_2 file_3

2、輸出除之外的所有行 -v 選項:

grep -v "file" file_name

3、標記匹配顏色 --color=auto 選項:

grep "file" file_name --color=auto

4、使用正則表達式 -E 選項:

grep -E "[1-9]+"

egrep "[1-9]+"

5、只輸出文件中匹配到的部分 -o 選項:

echo this is a test line. | grep -o -E "[a-z]+."
line.

echo this is a test line. | egrep -o "[a-z]+."
line.

6、統計文件或者文本中包含匹配字符串的行數-c 選項:

grep -c "text" file_name
2

7、輸出包含匹配字符串的行數 -n 選項:

grep "text" -n file_name

cat file_name | grep "text" -n

8、多個文件

grep "text" -n file_1 file_2

9、搜索多個文件並查找匹配文本在哪些文件中:

grep -l "text" file1 file2 file3...

10、grep遞歸搜索文件

在多級目錄中對文本進行遞歸搜索:

grep "text" . -r -n

11、忽略匹配樣式中的字符大小寫:

echo "hello world" | grep -i "HELLO"
hello

12、選項 -e 指定多個匹配樣式:

echo this is a text line | grep -e "is" -e "line" -o
is
line

13、也可以使用 -f 選項來匹配多個樣式,在樣式文件中逐行寫出需要匹配的字符。

cat patfile
aaa
bbb

echo aaa bbb ccc ddd eee | grep -f patfile -o

14、在grep搜索結果中包括或者排除指定文件:

只在目錄中所有的.php和.html文件中遞歸搜索字符"main()"

grep "main()" . -r --include *.{php,html}

15、在搜索結果中排除所有README文件

grep "main()" . -r --exclude "README"

16、在搜索結果中排除filelist文件列表裡的文件

grep "main()" . -r --exclude-from filelist

Linux 三劍客命令實戰操作

Grep實例介紹

grep "San" testfile 
#過濾有San的行

grep '^J' testfile 
#顯示以J開頭的行

grep '70$' testfile 
#顯示以70結尾的行

grep -v "834" testfile 
#顯示所有不包括834的行

grep ':12/' testfile 
#顯示:12/的行 

grep ':498-' testfile 
#顯示:498-的行

grep '[A-Z][a-z]{4}:[[:space:]][A-Z]' testfile 
#顯示這樣的行,一個大寫字母+四個小寫字母+空格+一個大寫字母

grep '[a-z]{1,}[[:space:]][Kk]' testfile 
#顯示包括K k的行

grep -n '[0-9]{6,}$' testfile 
#顯示6位數字的行,並列印行號

grep -i "lincoln" testfile 
#顯示有lincoln的行,不區分大小寫

Sed實例介紹

sed 's/Jon/Jonathan/g' testfile 
#全局替換(Jon替換成Jonathan)

sed '1,3d' testfile 
#刪除文件1-3行

sed -n '5,10p' testfile 
#列印文件5-10行內容

sed '/Lane/d' testfile 
#刪除包包含lane的行

sed -ne '/[1-9]{5}:1[12]/p' testfile 
#列印由5個數字+:11/12的行

sed 's/^Fred/***&/' testfile 
#在以Fred開頭的行前加上***

sed -e 's/.*Jose.*/JOSE HAS RETIRE/g' testfile 
#將包含Jose的行替換成JOSE HAS RETIRE

sed -n '/^Popeye/p' testfile |sed 's/[0-9]{1,}/[0-9]{1,}/[0-9]{1,}/11/14/46/' 
#將以Popeye開頭的行列印,然後將「數字/數字/數字」這格式的數字串替換成 11/14/46

##pattern{n} 匹配模式出現n次。
##pattern{n,} 匹配模式出現最少n次。
##pattern{n,m} 匹配模式出現n到m次之間,n , m為0 - 2 5 5中任意整數

sed '/^$/d' testfile 
#刪除所有空行

sed 's/.$//g' 
#刪除以.結尾行

sed 's/^[][]*//g' 
#刪除行首空格

sed 's//.[][]*/[]/g' 
#刪除句號後跟兩個或更多的空格,用一個空格代替

sed 's/^.//g' 
#刪除第一個字符

sed 's/COL/(.../)//g' 
#刪除緊跟COL的後三個字符

sed 's/^////g' 
#刪除路徑中第一個/

sed -n '3,/245700/'p testfile
#從第三行開始查詢到245700結束並列印

sed -n '2,26!'p testfile
#列印文件(除2-26)的行

Awk實例介紹

awk –F : 『{print $2}』 datafile
#以:分隔列印第二列

awk –F : 『/^Dan/{print $2}』 datafile
#以:分隔列印以Dan開頭行的第二列內容

awk –F : 『/^[CE]/{print $1}』 datafile 
#列印以C或E開頭行的第一列

awk –F : 『{if(length($1) == 4) print $1}』 datafile 
#列印以:分隔且長度為4字符的第一列內容

awk –F : 『/[916]/{print $1}』 datafile
#匹配916的行以:分隔列印第一列

awk -F : '/^Vinh/{print "a"$5}' 2.txt
#顯示以Dan開頭行並在第五列前加上a

awk –F : 『{print $2」,」$1}』  datafile
#列印第二列第一列並以,分隔

awk -F : '($5 == 68900) {print $1}' 2.txt
#以:分隔列印第五列是68900的行第一列  

awk -F : '{if(length($1) == 11) print $1}' 2.txt
#列印以:分隔且長度為4字符的第一列內容

awk -F : '$1~/Tommy Savage/ {print $5}' 2.txt
awk -F : '($1 == "Tommy Savage") {print $5}' 2.txt
#列印以:分隔且第一列為Tommy Savage的第五列內容

ll |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ",size}'
#統計目錄個的文件所有的字節數

awk 'BEGIN{size=0;} {size=size+$5;} END{print "[end]size is ",size/1024/1024,"M"}' 
#以M為單位顯示目錄下的所有字節數

awk 'BEGIN{a=10;a+=10;print a}'
20 
#a+10等價於 a=a+10

echo|awk 'BEGIN{a="100testaaa"}a~/test/{print "ok"}' 
#正則匹配a 是否有test字符,成立列印ok

awk 'BEGIN{a="b";print a=="b"?"ok":"err"}'
ok
awk 'BEGIN{a="b";print a=="c"?"ok":"err"}'
err
#三目運算符?:

awk '/root/{print $0}' passwd 
#匹配所有包含root的行

awk -F: '$5~/root/{print $0}' passwd 
# 以分號作為分隔符,匹配第5個欄位是root的行

ifconfig eth0|awk 'BEGIN{FS="[[:space:]:]+"} NR==2{print $4}'
#列印IP位址

awk '{print toupper($0)}' test.txt
#toupper是awk內置函數,將所小寫字母轉換成大寫

Linux三劍客Awk、Sed、Grep 命令詳解,到這裡就介紹完了。歡迎點讚、轉發分享支持。

相關焦點

  • 海量數據處理之cut、awk、sed命令詳解,數據分析必備技能,不難
    數據都存儲在文件中,文件中肉眼可見的數據無非就是各種有規則的字符的組合,比如日誌文件,小文件我們還可以認真閱讀,但是給你一個10M大小的數據文件,不亞於閱讀一本小說,更何況密密麻麻都是數據,我們可以通過cut、awk、sed這三個命令從規則文件中提取符合我們需要的數據,重要的是他們的運行速度非常的塊。
  • Linux shell腳本編程入門系列七:linux三劍客之awk
    1、awk是什麼?awk命令的作用是進行文本掃描、處理以及報表的生成。awk命令有自己的語法規則,官方說法叫「樣式掃描和處理語言」,其語法借鑑了C語言的精華。由於其強大的文本分析能力與格式化輸出能力,awk命令成為Linux環境開發者的必備殺器,與grep命令、sed命令一起被稱為Linux三劍客。熟練運用awk命令能讓我們的日常工作變得高端同時也高效起來。2、awk的基本使用awk對文本的掃描是以行為單位的,也就是說awk一次從文本中讀取一行的內容。
  • 面試題linux命令之awk
    無論是在測試還是開發崗位的面試招聘中,都會被提問到:是否了解linux系統,經常使用linux命令有哪些,接著可能會出一道題目,找出下列文本中的哪些值
  • Linux 三劍客之 awk 詳解
    (給Linux愛好者加星標,提升Linux技能)以下文章來源於宜信技術學院 ,作者秦偉第一篇 awk簡介與表達式實例
  • Linux常用命令 awk 入門基礎教程
    在使用awk命令的過程中,可以使用邏輯操作符「&&」和「||」;也可以進行簡單的數學運算,如+ 、-、、/、%、^分別表示加、減、乘、除、取餘、乘方。**awk從輸入文件或者標準輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個記錄,而將一行中的某一部分(列)作為記錄的一個欄位。
  • 【Linux】常用命令之 awk 常用實例
    在使用awk命令的過程中,可以使用邏輯操作符「&&」和「||」;也可以進行簡單的數學運算,如+ 、-、、/、%、^分別表示加、減、乘、除、取餘、乘方。**awk從輸入文件或者標準輸入中讀入信息,與sed一樣,信息的讀入也是逐行讀取的。不同的是,awk命令將文本文件中的一行視為一個記錄,而將一行中的某一部分(列)作為記錄的一個欄位。
  • shell實現鹼基/胺基酸序列提取(sed,grep,awk三大利器走向天下)
    任務二:從多條「RBFOX1」序列中提取最長的一段序列第一步:need1=`sed -n "/RBFOX1 /,/^@/p" file.fa | grep -En "@|>" | awk -F ":" 'NR==1{tmp=$1}NR>=0{print $1-tmp,$2;tmp=$1}'`計算不同序列的長度,這裡統計序列的行數
  • Linux常用命令 - sed
    使用 sed 搜索和替換文本的一般形式如下:sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE-i 將其輸出寫入標準輸出seds 替代命令,可能是 sed 中使用最多的命令-/分隔符字符。
  • 性能工具之linux常見日誌統計分析命令
    引言在上文中性能工具之linux三劍客awk、grep、sed詳解,我們已經詳細介紹 linux
  • Linux 三劍客
    # 查找以p為結尾的內容 grep -n p$ test.py  # 查找以p為開頭的內容 grep -n ^p test.py  sedsed(stream editor)是流編輯器,可對文本文件和標準輸入進行編輯。
  • Linux awk命令入門詳解
    簡介awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大
  • Linux 上 12 個高效的文本過濾命令
    1、 awk 命令awk[1] 是一個卓越的模式掃描和處理語言,它可被用於在 Linux 下構造有用的過濾器。你可以通過閱讀我們的 awk 系列 1 到 13 部分[2] 來開始使用它。另外,也可以通過閱讀 awk 的 man 手冊來獲取更多的信息和使用選項。
  • linux Awk命令詳解
    簡介awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。簡單來說awk就是把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行各種分析處理。
  • Linux Awk命令詳解
    簡介awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大
  • linux awk命令詳解
    是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤為強大。awk語言的最基本功能是在文件或者字符串中基於指定規則瀏覽和抽取信息,awk抽取信息後,才能進行其他文本操作。完整的awk腳本通常用來格式化文本文件中的信息。通常,awk是以文件的一行為處理單位的。awk每接收文件的一行,然後執行相應的命令,來處理文本。
  • 20分鐘吃掉Linux常用命令40式
    #切換到上級目錄, linux中一個點表示當前路徑,二個點表示當前路徑上級路徑例2:cd ~ #切換到主目錄例3:cd /User/liangyun03/ # 切換到某個絕對路徑,linux中以/開頭的路徑表示絕對路徑例4:cd
  • 史上最全的 Linux Shell 文本處理工具集錦,快收藏!
    、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;對shell腳本使用的原則是命令單行書寫,儘量不要超過2行;如果有更為複雜的任務需求,還是考慮python吧;我把 linux 相關的文章整理成了 PDF,關注公眾號 Java後端 並回復 666 下載。
  • 每天一個 Linux 命令:grep 命令
    1.命令格式:grep [option] pattern file2.命令功能:用於過濾/搜索的特定字符。可使用正則表達式能多種命令配合使用,使用上十分靈活。在linux下的grep除fgrep外,都支持POSIX的字符類。
  • 搞定Linux Shell文本處理工具,看完這篇集錦就夠了
    下面我介紹Linux下使用Shell處理文本時最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;提供的例子和參數都是最常用和最為實用的;我對shell腳本使用的原則是命令單行書寫,儘量不要超過2行;如果有更為複雜的任務需求,還是考慮python吧;1、find
  • Linux必知必會sed命令教程
    目錄:介紹工作原理正則表達式基本語法數字定址和正則定址基本子命令實戰練習介紹 熟悉 Linux 的同學一定知道大名鼎鼎的 Linux 三劍客,它們是 grep、awk、sed,我們今天要聊的主角就是 sed。