Linux 命令行操作入門(三)

Linux 命令行操作入門(三)

sed和awk的最基礎命令操作

sed
命令格式:
sed option ‘script’ file1 file2 …

option:(可以爲-n或者-i)
-n靜默輸出,sed程序在所有的腳本指令執行完畢後,這些選項可以屏蔽自動打印。
-i直接修改源文件,經腳本指令處理後的內容將本輸出至源文件。

'script’腳本的格式:
/pattern/command
pattern指定符合某些條件的行
command指指令,常用的指令:
a , append 追加
i , insert 插入
d , delete 刪除
s , substitution 替換
p, print 打印

例子:(在Linux上操作一下就知道)
sed ‘2a nihao’ test.txt
注:2表示test.txt文件中的第二行,a表示追加,nihao爲追加的內容,test.txt爲自己的文件。
顯示在第二行追加上’nihao’的test.txt內容,但是使用cat test.txt產看文件內容時,並沒有追加’nihao’,即沒改變源文件,單純只是打印出來。

sed -i ‘2a nihao’ test.txt
可以改變源文件,-i表示直接修改源文件

sed -i ‘1,4a nihao’ test.txt
在第一行和第四行追加內容’nihao’

sed ‘2d’ test.txt
刪除test.txt的第二行內容(如下圖)
在這裏插入圖片描述
sed ‘/4444/a 5555’ test.txt
在test.txt文件中所有的4444所在的行後面追加55556(如果更改源文件,加-i)

sed -n ‘/4444/p’ test.txt
把test.txt中包含4444的行內容打印出來

sed ‘/4444/s/5/Five/g’ test.txt
把4444所在的行中的5,全部替換爲Five,如果去掉g,就是隻替換4444所在行的第一個5,其中g表示全局。

sed ‘s/5/Five/g’ test.txt
把test.txt中的所有5替換爲Five

sed ‘s/5/-----&-----/’ test.txt
把test.txt中的每行第一個5替換爲-----5-----(如下圖:)
在這裏插入圖片描述

awk(如果說sed是對行進行操作,那麼awk是對列進行操作)

命令格式
awk option ‘script’ file1 file2
腳本格式:
/pattern/{actions}
pattern指符合某條件的行

例子:
awk ‘{print $2}’ test1.txt
$表示列的意思,$2表示test1.txt文件的第二列,默認空格作爲列的分隔符(如下圖所示)
在這裏插入圖片描述
awk ‘$2>60{print $2}’ test1.txt
對test1.txt第二列大於60的行,執行輸出第二列的命令
在這裏插入圖片描述
awk ‘$2>60{print $1 " " $2}’ test1.txt
在這裏插入圖片描述
awk ‘$2>60{print $0 " GOOD"}’ test1.txt
$0表示一整行;
找到第二列大於60的行,並在行後添加GOOD
在這裏插入圖片描述

awk ‘$2>=60{print $0 " GOOD"} $2<60{print $0 " BAD"}’ test1.txt
在這裏插入圖片描述
awk -F ‘:’ ‘{print $1}’ test1.txt
-F ':'表示使用 ‘:‘作爲列的分隔符
由於test1.txt文件中沒有’:’,所以一整行作爲一列。
在這裏插入圖片描述
awk -F ’ ’ ‘{print $1"\t"$2}’ test1.txt
在這裏插入圖片描述
awk 'BEGIN{statements1} statements2 END{statements3}'
在執行statements2之前執行BEGIN,執行statements之後執行END
例如:awk ‘BEGIN{print “start”}{print $1} END{print “End”}’ test1.txt
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章