成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

 [[383834]]

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

我非常認可這種說法,這里面有2個意思:

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

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

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

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

1. grep

  1. $ grep -v '^$' file 

-v 用于輸出不匹配的內容: 

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

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

2. sed 

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

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

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

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

3. awk 

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

補充知識:

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

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

  1. pattern { action } 

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

4. tr 

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

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

-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 表示刪除匹配項。

到此,已經有足夠多的方法刪除空白行了。

后續會寫更多關于 shell 腳本的文章,內容包括但不限于:

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

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

 

責任編輯:龐桂玉 來源: 良許Linux
相關推薦

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停止服務Java

2009-09-09 11:24:46

PHP實現MVC

2020-08-24 08:05:47

JavaScriptJavaScript 頁面

2011-06-16 10:48:33

session

2009-08-31 09:19:31

c#隱藏窗口

2018-08-09 20:47:41

2011-07-08 15:11:03

JAVA

2009-07-28 16:07:40

.NET圖片快速處理

2011-06-23 15:56:46

反向鏈接

2009-06-23 14:23:00

名稱空間Java API

2013-02-22 09:54:15

C#Excel讀取Excel
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品123区 | 久久久高清 | 日本又色又爽又黄又高潮 | www.av在线 | 精品国产一区二区三区免费 | 精品视频导航 | 国产精品视频久久久 | 久久天堂 | www天天操 | 欧美free性 | 黄 色 毛片免费 | 亚洲精品高清视频在线观看 | 久久久久久国产精品免费免费 | 精品亚洲一区二区三区 | av中文字幕在线观看 | 免费精品视频 | 91精品国产92 | 一区在线视频 | 成人深夜福利 | 伊人久久在线 | 97伊人 | 一呦二呦三呦国产精品 | 午夜电影网| av片免费 | 久久毛片| 国产999精品久久久久久 | 久久久国产精品入口麻豆 | 欧美在线视频一区二区 | 亚洲视频www| 国产精品福利网 | 嫩草伊人 | 日韩在线精品视频 | 日韩国产在线 | 99精品一级欧美片免费播放 | 在线观看成人精品 | 蜜桃久久 | 人人射人人 | 人人干在线视频 | 成人一区二区三区在线 | 欧日韩在线观看 | 久久成人综合 |