如何使用sed删除文本文件最后一行末尾的换行符
sed删除文件末尾多余换行符教程
需求说明
我们需要处理文本文件,删除最后一行末尾的多余换行符,最终文件末尾无任何换行符。
示例输入(末尾存在多余换行):
1 1 1 1 1 1
期望输出(末尾无多余换行):
1 1 1 1 1 1
操作命令
Linux环境(GNU Sed)
直接修改原文件的命令如下:sed -i -z 's/\n*$//' 你的文件路径
参数说明:
-i:直接修改原文件,无需输出到新文件。如果需要保留原文件备份,可以改为-i.bak,执行后会自动生成后缀为.bak的原文件备份-z:将行分隔符设置为NUL字符,使sed可以一次性读取整个文件内容s/\n*$//:匹配文件末尾所有连续的换行符,替换为空,实现去除末尾所有多余换行的效果
macOS环境(BSD Sed)
macOS自带的sed版本参数略有差异,命令如下:sed -i '' -0 's/\n*$//' 你的文件路径
参数说明:
-i '':直接修改原文件不保留备份,如果需要备份可以在引号内填写备份后缀,比如-i '.bak'-0:作用和GNU Sed的-z一致,一次性读取整个文件内容
内容的提问来源于stack exchange,提问作者mahbod
相关产品推荐
相关产品推荐

