在 Linux 上從檔案中刪除行尾


簡介

行尾是特殊字元,用於標記文字檔案中的行尾。在像 Linux 這樣的基於 Unix 的系統上,行尾由單個換行符 ('
') 表示。在 Windows 上,行尾由回車符 ('\r') 和換行符 ('
') 的組合表示,稱為“回車換行”或 CRLF。

有時,您可能需要出於各種原因從檔案中刪除行尾。例如,您可能希望在將檔案用作命令的輸入之前從檔案中刪除行尾,該命令期望單個輸入行,或者您可能希望從檔案中刪除行尾,以便更容易讀取或操作檔案。

在本文中,我們將介紹如何使用多種命令列工具從 Linux 上的檔案中刪除行尾。

使用 tr 命令刪除行尾

tr 命令是一個實用程式,允許您轉換或刪除檔案或標準輸入中的字元。要使用 tr 從檔案中刪除行尾,請使用以下命令

$ tr -d '
' < input_file > output_file

此命令讀取 input_file,刪除所有換行符,並將結果寫入 output_file-d 選項告訴 tr 刪除指定的字元。

以下是如何使用 tr 從檔案中刪除行尾的示例

$ cat input_file
Line 1
Line 2
Line 3
$ tr -d '
' < input_file > output_file $ cat output_file Line 1Line 2Line 3

如您所見,input_file 中的行尾已被刪除,結果文字現在是 output_file 中的單行。

使用 sed 命令刪除行尾

sed 命令是用於編輯文字檔案的強大實用程式。它可用於刪除或替換檔案中的特定模式。要使用 sed 從檔案中刪除行尾,請使用以下命令

$ sed ':a;N;$!ba;s/
//g' input_file > output_file

此命令讀取 input_file,刪除所有換行符,並將結果寫入 output_filesed 命令使用 −a;N;$!ba 迴圈讀取整個檔案,並使用 s/
//g
命令刪除所有換行符。

以下是如何使用 sed 從檔案中刪除行尾的示例

$ cat input_file
Line 1
Line 2
Line 3
$ sed ':a;N;$!ba;s/
//g' input_file > output_file $ cat output_file Line 1Line 2Line 3

如您所見,input_file 中的行尾已被刪除,結果文字現在是 output_file 中的單行。

使用 awk 命令刪除行尾

awk 命令是用於處理文字檔案的強大實用程式。它可用於刪除或替換檔案中的特定模式。要使用 awk 從檔案中刪除行尾,請使用以下命令

$ awk '{printf("%s", $0)}' input_file > output_file

此命令讀取 input_file,刪除所有換行符,並將結果寫入 output_fileawk 命令讀取輸入檔案的每一行,並使用 printf 函式將其列印到輸出檔案。%s 格式說明符告訴 printf 將輸入視為字串,而逗號運算子告訴 awk 在沒有行尾的情況下列印輸出。

以下是如何使用 awk 從檔案中刪除行尾的示例

$ $ cat input_file
Line 1
Line 2
Line 3
$ awk '{printf("%s", $0)}' input_file > output_file
$ cat output_file
Line 1Line 2Line 3

如您所見,input_file 中的行尾已被刪除,結果文字現在是 output_file 中的單行。

結論

在本文中,我們介紹瞭如何使用三種不同的命令列工具從 Linux 上的檔案中刪除行尾:tr、sedawk。這些工具中的每一個都可以用於從檔案中刪除行尾,選擇使用哪個工具將取決於您的具體需求和偏好。無論您選擇哪個工具,都務必記住,從檔案中刪除行尾可能會使檔案難以閱讀或操作,因此請確保僅在必要時使用此技術。

更新於: 2023年1月4日

4K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告