如何解决如何使用 sed 将每个换行符 (\n) 替换为空格?
将此解决方案与 GNU 一起使用sed
:
sed ':a;N;$!ba;s/\n/ /g' file
这将在循环中读取整个文件 ( ':a;N;$!ba
),然后用空格 ( ) 替换换行符s/\n/ /g
。如果需要,可以简单地附加额外的替换。
解释:
-
sed
首先将第一行(不包括换行符)读入模式空间。 - 通过创建标签
:a
。 - 通过 . 将换行符和下一行添加到模式空间
N
。 - 如果我们在最后一行之前,则跳转到创建的标签
$!ba
($!
意味着不在最后一行执行。这是避免N
再次执行的必要条件,如果没有更多输入,则会终止脚本!)。 - 最后,替换用模式空间(即整个文件)上的空格替换每个换行符。
这是适用于 BSD 和 OS X 的跨平台兼容语法sed
:
sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g' file
如您所见,sed
用于这个原本简单的问题是有问题的。
解决方法
如何使用该命令将换行符 (” \n
“)替换为空格 (” “) ?``sed
我尝试失败:
sed 's#\n# #g' file
sed 's#^$# #g' file
我如何解决它?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。