CSS

如何使用 sed 将每个换行符 (\n) 替换为空格?

发布于 2022-03-22 23:30:37

如何使用该命令将换行符 (” \n“)替换为空格 (” “) ?``sed

我尝试失败:

sed 's#\n# #g' file
sed 's#^$# #g' file

我如何解决它?

关注者
0
被浏览
101
1 个回答
  • 面试哥
    面试哥 2022-03-22
    为面试而生,有面试问题,就找面试哥。

    将此解决方案与 GNU 一起使用sed

    sed ':a;N;$!ba;s/\n/ /g' file
    

    这将在循环中读取整个文件 ( ':a;N;$!ba),然后用空格 ( ) 替换换行符s/\n/ /g。如果需要,可以简单地附加额外的替换。

    解释:

    1. sed首先将第一行(不包括换行符)读入模式空间。
    2. 通过创建标签:a
    3. 通过 . 将换行符和下一行添加到模式空间N
    4. 如果我们在最后一行之前,则跳转到创建的标签$!ba$!意味着不在最后一行执行。这是避免N再次执行的必要条件,如果没有更多输入,则会终止脚本!)。
    5. 最后,替换用模式空间(即整个文件)上的空格替换每个换行符。

    这是适用于 BSD 和 OS X 的跨平台兼容语法sed

    sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g' file
    

    如您所见,sed用于这个原本简单的问题是有问题的。



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看