偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Shell入門_去掉空行的幾種方法

系統(tǒng) Linux
接下來是主題,做嵌入式軟件開發(fā)偶爾要收集和分析 log,有時為了格式化輸出需要刪除掉多余的空白行,我挑選了幾個 簡短且容易理解的 方法分享給大家。

 [[383834]]

昨天聽到一個很有意思的說法:腳本猛于老虎。

我非常認(rèn)可這種說法,這里面有2個意思:

  1.  腳本的功能很強(qiáng)大,可以做很多事情,雖然不是最好的方式;
  2.  腳本很危險,很容易出錯;

或許還能加一句:伴君如伴虎...

我本人非常喜歡 shell 腳本,因為它做事太簡單粗暴了,適合用來實現(xiàn) v0.01 版本原型,我甚至認(rèn)為它很好地 輔助了軟件設(shè)計。

接下來是主題,做嵌入式軟件開發(fā)偶爾要收集和分析 log,有時為了格式化輸出需要刪除掉多余的空白行,我挑選了幾個 簡短且容易理解的 方法分享給大家。

1. grep

  1. $ grep -v '^$' file 

-v 用于輸出不匹配的內(nèi)容: 

  1. $ man grep  
  2.  Matching Control  
  3.  -v, --invert-match  
  4.               Invert the sense of matching, to select non-matching lines. 

通配符 '^里的用于表示字符串開始, 用于表示字符串結(jié)束。

2. sed 

  1. $ sed '/^$/d' file 

sed 的全名是 “stream editor”,即流編輯器,是一個使用簡單緊湊的編程語言來解析和轉(zhuǎn)換文本超強(qiáng)實用程序。

^$ 用于匹配空白行,d 則是 sed 的其中一個命令,用于刪除匹配項: 

  1. $ man sed  
  2. COMMAND SYNOPSIS  
  3.     ...  
  4.     d      Delete pattern space.  Start next cycle.  
  5.     ... 

3. awk 

  1. $ awk '!/^$/' file 

補(bǔ)充知識:

awk (其名稱得自于它的創(chuàng)始人阿爾佛雷德·艾侯、彼得·溫伯格和布萊恩·柯林漢姓氏的首個字母) 是一種用于處理文本的編程語言。它是一個優(yōu)良的文本處理工具,工作時它會掃描文件中的每一行,查找與命令行中所給定內(nèi)容相匹配的模式。如果發(fā)現(xiàn)匹配內(nèi)容,則進(jìn)行下一個編程步驟。如果找不到匹配內(nèi)容,則繼續(xù)處理下一行。

awk 程序是由一系列模式--動作對組成的: 

  1. pattern { action } 

回到我們的需求,^$ 用于匹配空白行,!則用來取反,從而找出非空白行,awk 的默認(rèn) action 就是 print,所以我們連 print 都不寫了。

4. tr 

  1. $ cat in.txt | tr -s '\n' 

tr 是 translate 的縮寫,用于替換或刪除輸入數(shù)據(jù)集中特定字符。

-s 用于將其輸出中相同相鄰字符的序列壓縮為單個字符: 

  1. $ man tr  
  2. DESCRIPTION  
  3.     -s, --squeeze-repeats 
  4.                replace  each  sequence  of a repeated character that is listed in the last specified SET, with a single occurrence of  
  5.               that character 

5. vi 

  1. $ vi file  
  2. :g/^$/d 

vi 是一種模式編輯器。不同的按鈕和鍵擊可以更改不同的“模式”。

在命令模式下,g 指定全局搜索,^$ 用于匹配空白行,d 表示刪除匹配項。

到此,已經(jīng)有足夠多的方法刪除空白行了。

后續(xù)會寫更多關(guān)于 shell 腳本的文章,內(nèi)容包括但不限于:

  1.  shell 腳本基礎(chǔ)知識;
  2.  shell 腳本小技巧;
  3.  shell 腳本編程規(guī)范;
  4.  分析 shell 腳本編寫的開源項目;

你喜歡 shell 嗎?大家有喜歡的文章和書籍麻煩也分享給我,謝謝~ 

 

責(zé)任編輯:龐桂玉 來源: 良許Linux
相關(guān)推薦

2024-07-22 15:42:08

Linux字符串

2009-09-18 12:29:55

2010-05-17 15:17:06

MySQL常用操作

2010-06-03 08:55:43

LINQ

2013-08-21 11:31:21

iPhone圖片方法

2010-01-22 14:46:25

C++語言

2010-04-30 16:22:07

Unix終端

2010-10-26 09:23:03

Web Service

2021-03-08 09:32:04

Python文件命令

2020-01-10 16:23:44

Springboot停止服務(wù)Java

2009-09-09 11:24:46

PHP實現(xiàn)MVC

2020-08-24 08:05:47

JavaScriptJavaScript 頁面

2009-08-31 09:19:31

c#隱藏窗口

2011-06-16 10:48:33

session

2018-08-09 20:47:41

2011-07-08 15:11:03

JAVA

2009-07-28 16:07:40

.NET圖片快速處理

2009-06-23 14:23:00

名稱空間Java API

2011-06-23 15:56:46

反向鏈接

2013-02-22 09:54:15

C#Excel讀取Excel
點贊
收藏

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