Linux換行符的使用方法詳解
更新時間:2025年04月04日 08:37:51 作者:唐青楓
本文介紹了Linux中常用的換行符LF及其在文件中的表示,展示了如何使用sed命令替換換行符,并列舉了與換行符處理相關的Linux命令,通過代碼講解的非常詳細,需要的朋友可以參考下
簡介
Linux 中的換行符對于格式化文本輸出、修改文件和確保跨系統(tǒng)兼容性至關重要。
Linux 主要使用 LF(換行符,\n)來換行,而 Windows 使用 CRLF(回車符 + 換行符,\r\n)
檢測文件中的換行符
使用 cat -A 查看換行符
cat -A myfile.txt
輸出 Linux 風格,LF \n:
Hello World$
輸出 Windows 風格,CRLF \r\n:
Hello World^M$
$:表示行的結束 (LF)^M$:表示文件有Windows換行符 (\r\n)
使用 od -c 檢查字符
od -c myfile.txt
輸出:Linux \n
0000000 H e l l o W o r l d \n
輸出:Windows \r\n
0000000 H e l l o W o r l d \r \n
\r \n:Windows樣式的行尾\n:Linux風格的行尾
換行符格式轉換
將 Windows CRLF (\r\n) 轉換為 Linux LF (\n)
- 使用
dos2unix
dos2unix myfile.txt
- 使用
sed
sed -i 's/\r$//' myfile.txt
- 使用
tr
cat myfile.txt | tr -d '\r' > newfile_unix.txt
將 Linux LF (\n) 轉換為 Windows CRLF (\r\n)
unix2dos
unix2dos myfile.txt
- 使用
sed
sed -i 's/$/\r/' myfile.txt
- 使用
awk
awk '{print $0 "\r"}' myfile.txt > newfile_windows.txt
在輸出中添加換行符
打印多行文本
- 使用
echo -e
echo -e "Line 1\nLine 2\nLine 3"
輸出:
Line 1 Line 2 Line 3
- 使用
printf
printf "Line 1\nLine 2\n"
在命令中插入換行符
使用 sed
echo "Hello World" | sed 's/ / \n/g'
輸出:
Hello World
- 使用
awk
echo "Hello World" | awk '{print $1 "\n" $2}'
處理 Shell 腳本中的換行符
循環(huán)遍歷文件中的行
#!/bin/bash
while IFS= read -r line; do
echo "Processing: $line"
done < myfile.txt
從文件中刪除空行
sed -i '/^$/d' myfile.txt 或 awk 'NF' myfile.txt > clean_file.txt
計算文件中的換行符
grep -c '^' myfile.txt 或 wc -l myfile.txt
其他用法
用新行追加文本
echo "New Entry" >> myfile.txt
追加到文本不添加新行
echo -n "New Entry" >> myfile.txt
檢查文件是否以新行結尾
tail -c1 myfile.txt | od -c
如果輸出顯示
\n,則表示文件尾部有換行符。如果沒有輸出,則文件缺少尾隨換行符。
使用多行字符串
將多行字符串分配給變量
mytext="Line 1 Line 2 Line 3" echo "$mytext"
使用 cat 讀取多行輸入
cat <<EOF > myfile.txt This is line 1. This is line 2. EOF
在 Linux 中處理 Windows 格式的文件
修復文件中的 ^M 字符
- 使用
sed
sed -i 's/\r$//' myfile.txt
- 使用
vim
vim myfile.txt :set fileformat=unix :wq
以上就是Linux換行符的使用方法詳解的詳細內容,更多關于Linux換行符使用的資料請關注腳本之家其它相關文章!
相關文章
通過Shell腳本批量創(chuàng)建服務器上的MySQL數據庫賬號
公司有數百臺 MySQL 實例,如果手動登入來創(chuàng)建賬號很麻煩,也不現實。所以,我們寫了一個簡單的shell腳本,用來創(chuàng)建批量服務器的mysql 賬號。這篇文章主要介紹了通過Shell腳本批量創(chuàng)建服務器上的MySQL數據庫賬號的相關知識 ,需要的朋友可以參考下2019-07-07

