在 Linux 中如何刪除檔案中的空行
有時你可能需要在 Linux 中刪除某個檔案中的空行。如果是的,你可以使用下面方法中的其中一個。有很多方法可以做到,但我在這裡只是列舉一些簡單的方法。
你可能已經知道 grep
、awk
和 sed
命令是專門用來處理文字資料的工具。
如果你想了解更多關於這些命令的文章,請訪問這幾個 URL:在 Linux 中建立指定大小的檔案的幾種方法,在 Linux 中建立一個檔案的幾種方法 以及 在 Linux 中刪除一個檔案中的匹配的字串。
這些屬於高階命令,它們可用在大多數 shell 指令碼中執行所需的操作。
下列 5 種方法可以做到。
sed
:過濾和替換文字的流編輯器。grep
:輸出匹配到的行。cat
:合併檔案並列印內容到標準輸出。tr
:替換或刪除字元。awk
:awk 工具用於執行 awk 語言編寫的程式,專門用於文字處理。perl
:Perl 是一種用於處理文字的程式語言。
我建立了一個 2daygeek.txt
檔案來測試這些命令。下面是檔案的內容。
$ cat 2daygeek.txt
2daygeek.com is a best Linux blog to learn Linux.
It's FIVE years old blog.
This website is maintained by Magesh M, it's licensed under CC BY-NC 4.0.
He got two GIRL babys.
Her names are Tanisha & Renusha.
現在一切就緒,我們準備開始用多種方法來驗證。
使用 sed 命令
sed
是一個流編輯器。流編輯器是用來編輯輸入流(檔案或管道)中的文字的。
$ sed '/^$/d' 2daygeek.txt
2daygeek.com is a best Linux blog to learn Linux.
It's FIVE years old blog.
This website is maintained by Magesh M, it's licensed under CC BY-NC 4.0.
He got two GIRL babes.
Her names are Tanisha & Renusha.
以下是命令展開的細節:
sed
: 該命令本身。//
: 標記匹配範圍。^
: 匹配字串開頭。$
: 匹配字串結尾。d
: 刪除匹配的字串。2daygeek.txt
: 原始檔名。
使用 grep 命令
grep
可以通過正規表示式在檔案中搜尋。該表示式可以是一行或多行空行分割的字元,grep
會列印所有匹配的內容。
$ grep . 2daygeek.txt
or
$ grep -Ev "^$" 2daygeek.txt
or
$ grep -v -e '^$' 2daygeek.txt
2daygeek.com is a best Linux blog to learn Linux.
It's FIVE years old blog.
This website is maintained by Magesh M, it's licensed under CC BY-NC 4.0.
He got two GIRL babes.
Her names are Tanisha & Renusha.
以下是命令展開的細節:
grep
: 該命令本身。.
: 替換任意字元。^
: 匹配字串開頭。$
: 匹配字串結尾。E
: 使用擴充套件正則匹配模式。e
: 使用常規正則匹配模式。v
: 反向匹配。2daygeek.txt
: 原始檔名。
使用 awk 命令
awk
可以執行使用 awk 語言寫的指令碼,大多是專用於處理文字的。awk 指令碼是一系列 awk
命令和正則的組合。
$ awk NF 2daygeek.txt
or
$ awk '!/^$/' 2daygeek.txt
or
$ awk '/./' 2daygeek.txt
2daygeek.com is a best Linux blog to learn Linux.
It's FIVE years old blog.
This website is maintained by Magesh M, it's licensed under CC BY-NC 4.0.
He got two GIRL babes.
Her names are Tanisha & Renusha.
以下是命令展開的細節:
awk
: 該命令本身。//
: 標記匹配範圍。^
: 匹配字串開頭。$
: 匹配字串結尾。.
: 匹配任意字元。!
: 刪除匹配的字串。2daygeek.txt
: 原始檔名。
使用 cat 和 tr 命令 組合
cat
是串聯(拼接)的簡寫。經常用於在 Linux 中讀取一個檔案的內容。
cat
是在類 Unix 系統中使用頻率最高的命令之一。它提供了常用的三個處理文字檔案的功能:顯示檔案內容、將多個檔案拼接成一個,以及建立一個新檔案。
tr
可以將標準輸入中的字元轉換,壓縮或刪除,然後重定向到標準輸出。
$ cat 2daygeek.txt | tr -s '\n'
2daygeek.com is a best Linux blog to learn Linux.
It's FIVE years old blog.
This website is maintained by Magesh M, it's licensed under CC BY-NC 4.0.
He got two GIRL babes.
Her names are Tanisha & Renusha.
以下是命令展開的細節:
cat
: cat 命令本身。tr
: tr 命令本身。|
: 管道符號。它可以將前面的命令的標準輸出作為下一個命令的標準輸入。s
: 替換標資料集中任意多個重複字元為一個。\n
: 新增一個新的換行。2daygeek.txt
: 原始檔名。
使用 perl 命令
Perl 表示實用的提取和報告語言。Perl 在初期被設計為一個專用於文字處理的程式語言,現在已擴充套件應用到 Linux 系統管理,網路程式設計和網站開發等多個領域。
$ perl -ne 'print if /\S/' 2daygeek.txt
2daygeek.com is a best Linux blog to learn Linux.
It's FIVE years old blog.
This website is maintained by Magesh M, it's licensed under CC BY-NC 4.0.
He got two GIRL babes.
Her names are Tanisha & Renusha.
以下是命令展開的細節:
perl
: perl 命令。n
: 逐行讀入資料。e
: 執行某個命令。print
: 列印資訊。if
: if 條件分支。//
: 標記匹配範圍。\S
: 匹配任意非空白字元。2daygeek.txt
: 原始檔名。
via: https://www.2daygeek.com/remove-delete-empty-lines-in-a-file-in-linux/
作者:Magesh Maruthamuthu 選題:lujun9972 譯者:pityonline 校對:wxy
相關文章
- 在Linux中,如何建立、刪除和修改檔案?Linux
- 在Linux系統中如何刪除一個檔案?Linux
- 快速刪除excel中的空行和列Excel
- 如何永久刪除Mac中的檔案?Mac
- 如何優雅地刪除 Linux 中的垃圾檔案Linux
- 在Oracle中,如何定時刪除歸檔日誌檔案?Oracle
- 如何刪除在Github中建立的專案Github
- 在Linux中,有一個檔案,如何刪除包含“www“字樣的字元?Linux字元
- 在Linux中,如何建立、移動和刪除檔案和資料夾?Linux
- Linux中如何刪除檔案?注意事項有哪些?Linux
- 在Linux中,刪除一個檔案,刪不掉是什麼原因?Linux
- 在Linux中,有一堆日誌檔案,如何刪除7天前的日誌檔案?Linux
- Linux中如何設定檔案只能追加而不能刪除Linux
- 批量刪除檔案中的^M
- 刪除Repository中的檔案
- 刪除檔案中的數字
- Linux下將使用rm刪除的檔案顯示在回收站中Linux
- 得到txt空白行的行數、將txt檔案的空行刪除和刪除csv檔案中指定的行
- vs code 刪除空行
- Linux中對檔案刪除函式unlink的操作Linux函式
- 磁碟已滿,如何從 Mac 中刪除大檔案?Mac
- linux下rm命令刪除檔名中包含特殊字元的檔案Linux字元
- 刪除檔案中包含指定字串的行字串
- eclipse中恢復刪除的檔案Eclipse
- 在 Git 中怎樣克隆、修改、新增和刪除檔案?Git
- 在 Linux 中如何移動檔案Linux
- 如何刪除電腦系統中多餘的dll檔案
- 在 CentOS 8 中刪除舊的 Linux 核心CentOSLinux
- vim刪除文字檔案中末行^M
- linux中誤刪除oracle資料檔案的恢復操作LinuxOracle
- windows10中的windows的系統舊檔案如何刪除Windows
- Linux如何快速刪除大量碎小檔案?Linux
- linux中如何解決檔案已刪除但空間不釋放的案例Linux
- 如何在 Linux 中刪除目錄Linux
- Linux中RM快速刪除大量檔案/資料夾方法Linux
- Linux下批量刪除空檔案或者刪除指定大小的檔案Linux
- 怎樣在PB中實現檔案的複製與刪除 (轉)
- linux中誤刪除oracle資料檔案的恢復操作(轉)LinuxOracle