加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 使用sed从传入流中删除新的行字符

发布时间:2020-12-15 19:48:22 所属栏目:安全 来源:网络整理
导读:我是新的shell脚本,我正在尝试使用SED从每行删除新的行字符。这是我迄今为止所做的: printf "{newntonlinux}" | sed ':a;N;s/n/ /g' 只删除Ist新行字符。 我在某处找到这个命令: printf "{newntonlinux}" | sed ':a;N;$!ba;s/n/ /g' 但它给出:“ba
我是新的shell脚本,我正在尝试使用SED从每行删除新的行字符。这是我迄今为止所做的:
printf "{newntonlinux}" | sed ':a;N;s/n/ /g'

只删除Ist新行字符。
我在某处找到这个命令:

printf "{newntonlinux}" | sed ':a;N;$!ba;s/n/ /g'

但它给出:“ba:事件未找到”。

如果我做:

printf "{newntonlinux}" | sed ':a;N;s/n/ /g' | sed ':a;N;s/n/ /g'

那么它会提供正确的输出,但我正在寻找更好的东西,因为我不知道我会运行脚本时会获得多少新角色。
传入流是来自echo或printf或脚本中的一些变量。
提前致谢

要删除换行符,请使用tr:
tr -d 'n'

如果要用单个空格替换每个换行符:

tr 'n' ' '

错误ba:未找到事件来自csh,并且是由于csh尝试在历史列表中匹配!ba。你可以逃脱!并写命令:

sed ':a;N;$!;s/n/ /g'  # Suitable for csh only!!

但是sed是错误的工具,您将更好地使用更合理地处理引用的字符串的shell。也就是说,停止使用csh并开始使用bash。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读