Linux换行符的使用方法详解

 更新时间:2025年04月04日 08:37:51   作者:唐青枫  
本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的朋友可以参考下

简介

Linux 中的换行符对于格式化文本输出、修改文件和确保跨系统兼容性至关重要。

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 脚本中的换行符

循环遍历文件中的行

#!/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编程控制结构的基本使用

    Shell编程控制结构的基本使用

    本文主要介绍了Shell编程控制结构的基本使用,主要介绍了几种常用的控制语句,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • 通过Shell脚本批量创建服务器上的MySQL数据库账号

    通过Shell脚本批量创建服务器上的MySQL数据库账号

    公司有数百台 MySQL 实例,如果手动登入来创建账号很麻烦,也不现实。所以,我们写了一个简单的shell脚本,用来创建批量服务器的mysql 账号。这篇文章主要介绍了通过Shell脚本批量创建服务器上的MySQL数据库账号的相关知识 ,需要的朋友可以参考下
    2019-07-07
  • shell脚本内调用另外一个shell脚本的几种方法讲解

    shell脚本内调用另外一个shell脚本的几种方法讲解

    在Linux开发中经常会编写shell脚本来执行一些任务,下面这篇文章主要给大家介绍了关于shell脚本内调用另外一个shell脚本的几种方法,需要的朋友可以参考下
    2023-06-06
  • Linux du命令实现根据文件或者文件夹大小排序输出

    Linux du命令实现根据文件或者文件夹大小排序输出

    Linux是一个强大的操作系统,广泛用于服务器和个人计算机,本文主要来和大家聊聊如何利用du命令实现根据文件或者文件夹大小排序输出,感兴趣的可以了解下
    2023-09-09
  • shell脚本实现多彩进度条

    shell脚本实现多彩进度条

    这篇文章主要介绍了shell脚本实现多彩进度条的相关资料,需要的朋友可以参考下
    2017-07-07
  • 使用iconv批量改变文件编码的shell脚本

    使用iconv批量改变文件编码的shell脚本

    在开发中,我们经常需要对N多文件编码进行更改,iconv只能对单文件的进行更改,怎么办呢?我们写一个shell脚本来解决这个问题
    2014-08-08
  • Linux下Shell编程之sed命令的用法详解

    Linux下Shell编程之sed命令的用法详解

    sed(stream editor)是一种流编辑器,它能够对文本进行过滤和转换,sed 非常适合于在管道中处理文本数据,下面小编来和大家聊聊它的具体用法吧
    2025-01-01
  • Shell脚本批量重命名文件后缀的3种实现

    Shell脚本批量重命名文件后缀的3种实现

    这篇文章主要介绍了Shell脚本批量重命名文件后缀的3种实现,本文分别使用find + xargs +sed、for循环、rename等3种方法实现重命名文件后缀,需要的朋友可以参考下
    2014-09-09
  • Linux学习之expect操作详解

    Linux学习之expect操作详解

    expect是一种脚本语言,它能够代替人工实现与终端的交互,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。本文将通过示例详细说说它的使用,感兴趣的可以了解一下
    2022-10-10
  • Linux 终端中命令输出保存到文件中的方法

    Linux 终端中命令输出保存到文件中的方法

    这篇文章主要介绍了如何将 Linux 终端中命令的输出保存到文件中实例操作,操作步骤非常详细,有需要的小伙伴可以按步骤来研究下吧
    2020-12-12

最新评论