溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux支付命令操作之grep、sed、awk的示例分析

發布時間:2021-11-08 14:02:23 來源:億速云 閱讀:126 作者:小新 欄目:建站服務器

這篇文章將為大家詳細講解有關Linux支付命令操作之grep、sed、awk的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、grep

grep命令主要用于文本內容的查找。它支持正則表達式查找,命令格式為:

 grep [option] pattern filename

例如:在filename文本中查找包含”text”的行:

 grep "text" filename

這條命令默認只輸出匹配的文本行

option為-o時,命令行只輸出匹配的文本
option為-v時,命令行只輸出沒有匹配的文本行
option為-R -r時,匹配目錄下的所有文件 二、sed

sed命令主要用于文本內容的編輯。默認只處理模式空間,不處理原數據,而且sed是針對一行行數據來進行處理的。

sed的命令格式為:

sed [option] 'command' filename

option常用選項有以下:

-n:使用安靜(silent)模式。
 在一般sed的用法中,所有來自stdin的數據一般都會被列出到終端上。
 但如果加上-n參數后,則只有經過sed特殊處理的那一行(或者動作)才會被列出來。
-e:直接在命令列模式上進行sed的動作編輯。
-i:直接修改讀取的文件內容,而不是輸出到終端。

command可以分為以下幾種:

a:追加,a的后面可以接字串,而這些字串會在新的一行出現(目前的下一行)
i:插入,i的后面可以接字串,而這些字串會在新的一行出現(目前的上一行)
d:以行為單位的刪除
c:以行為單位的替換,c的后面可以接字串
s:在行中搜尋并替換
p:以行為單位的顯示,通常p會與參數sed -n一起運行

例如:

1、在filename文本最后一行追加hello world:

 sed '$a hello world' filename

2、在filename文本第一行插入hello world:

sed '1i hello world' filename

3、既要在最后一行追加hello world,又要在第一行插入hello world:

 sed -e '$a hello world' -e '1i hello world' filename

另外,sed比較常用的就是文本替換,它也支持正則表達式,功能強大。例如:

1、表示將filename文本的每行中的oldstring替換為newstring:

 sed 's/oldstring/newstring/g' filename

2、刪除空白行:

sed '/^\s*$/d' filename

PS:正則表達式中\s表示空白字符(包括,空格,制表符等)

三、awk

awk命令主要用于文本內容的分析處理。

如果對處理的數據需要生成報告之類的信息,或者處理的數據是按列進行處理的,最好使用awk。

awk讀入有’\n’換行符分割的一條記錄,然后將記錄按指定的域分隔符劃分域,$0則表示所有域,$1表示第一個域,$n表示第n個域。

例如:以”:”分隔filename文本的每一行并且打印第一列

awk -F ':' '{print $1}' filename

打印可以采用print函數,如果需要格式化打印,則類似C語言一樣采用printf函數。

練習:sed和awk定制化顯示舉例

1、可以制作一個文本test.txt,內容為:

This is my cat, my cat's name is betty
This is my dog, my dog's name is frank
This is my fish, my fish's name is george
This is my goat, my goat's name is adam

需要顯示的結果為:

cat:betty
dog:frank
fish:george
goat:adam

如果采用sed,可以輸入

sed 's/This is my \(.*\),.*is \(.*\)/\1:\2/g' test.txt

如果采用awk,則有兩種方法

awk -F '[ ,]' '{print $4,$10}' OFS=":" test.txt 
awk -F '[ ,]' '{printf("%s:%s\n",$4,$10)}' test.txt
awk -F, '{print $1,$2}' test.txt|awk '{print $4,$9}' OFS=":"

關于“Linux支付命令操作之grep、sed、awk的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女