自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux命令三劍客:grep、sed、awk

系統(tǒng) Linux
grep命令主要用于文本內(nèi)容的查找。sed命令主要用于文本內(nèi)容的編輯。awk命令主要用于文本內(nèi)容的分析處理。

一、grep

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

 

  1. grep [option] pattern filename 

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

  1. grep "text" filename 

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

  1. option為-o時,命令行只輸出匹配的文本  
  2. option為-v時,命令行只輸出沒有匹配的文本行  
  3. option為-R -r時,匹配目錄下的所有文件  

二、sed

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

sed的命令格式為: 

  1. sed [option] 'command' filename 

option常用選項有以下: 

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

command可以分為以下幾種: 

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

例如:

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

  1. sed '$a hello world' filename 

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

  1. sed '1i hello world' filename 

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

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

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

例如:

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

  1. sed 's/oldstring/newstring/g' filename  

2、刪除空白行: 

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

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

三、awk 

awk命令主要用于文本內(nèi)容的分析處理。

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

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

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

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

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

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

1、可以制作一個文本test.txt,內(nèi)容為: 

  1. This is my cat, my cat's name is betty  
  2. This is my dog, my dog's name is frank  
  3. This is my fish, my fish's name is george  
  4. This is my goat, my goat's name is adam 

需要顯示的結(jié)果為: 

  1. cat:betty  
  2. dog:frank  
  3. fish:george  
  4. goat:adam  

如果采用sed,可以輸入 

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

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

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

 

責任編輯:龐桂玉 來源: 今日頭條
相關(guān)推薦

2019-06-27 10:06:54

Linux 性能工具

2021-05-13 10:25:29

Linuxgrep命令

2023-10-04 00:20:31

grepLinux

2023-09-05 10:04:35

Linux運維

2021-03-15 07:39:48

LinuxAwk 語言

2011-03-28 16:04:44

nagios

2009-02-26 18:22:49

桌面虛擬化Linux

2010-02-04 16:22:21

2017-07-25 08:53:14

CorrectLinkCCA-SD算法

2024-06-04 00:20:00

Python函數(shù)

2009-03-19 20:52:58

LinuxPHPCMS

2011-08-06 23:58:34

愛普生投影機

2023-11-25 17:08:47

ChatbotLLAMALangChain

2011-07-04 09:07:54

2011-04-11 11:01:03

AndroidHTC蘋果

2025-04-22 09:39:46

Python爬蟲網(wǎng)頁數(shù)據(jù)抓取

2009-02-27 09:10:53

Linux操作系統(tǒng)虛擬化三劍客

2018-05-04 15:18:01

DockerDocker Comp容器

2014-11-26 10:18:32

Cloud Setupwindows在線打包工具

2025-02-10 08:10:00

Linuxsed命令
點贊
收藏

51CTO技術(shù)棧公眾號