在 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_file。sed 命令使用 −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_file。awk 命令讀取輸入檔案的每一行,並使用 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、sed 和 awk。這些工具中的每一個都可以用於從檔案中刪除行尾,選擇使用哪個工具將取決於您的具體需求和偏好。無論您選擇哪個工具,都務必記住,從檔案中刪除行尾可能會使檔案難以閱讀或操作,因此請確保僅在必要時使用此技術。