gpt4 book ai didi

sed - 如何使用sed在Solaris上删除下一行

转载 作者:行者123 更新时间:2023-12-04 13:38:45 27 4
gpt4 key购买 nike

我试图使用sed在文件中找到匹配的模式然后删除
仅下一行。

前任。

LocationNew York <----删除美国

位置伦敦<---- deleteUK

我尝试了在Linux上可以使用的sed '/Location/{n; d}',但在solaris上却无法使用。

谢谢。

最佳答案

正如我在关于其他问题的回答中提到的那样,Solaris sed是老式的,需要更多的手动操作(或者换种说法),对其语法更加挑剔。

您所需要的只是一个额外的';'将char放在`d'字符之后,即

sed '/Location/{n; d;}'

更一般而言, {...}中换行符中的任何内容在将其汇总到一行时都需要使用分号分隔符。但是,您无法像在Linux中一样将'a','i','c'命令汇总到一行。

在Solaris标准sed中,“a”,“i”,“c”命令需要在其后跟无空格或制表符的尾随“\”,并在 \n终止行(NO)上输入尽可能多的数据(可能在K范围内) \r),后跟空白行。

Solaris的较新安装也可能安装了 /usr/xpg4/bin/sed。尝试
/usr/xpg4/bin/sed '/Location/{n; d}' 

如果幸运的话,它将支持您的快捷方式语法。我再也无法使用任何solaris机器进​​行测试了。

最后,如果那行不通,则可以安装一些GNU工具包,它们的 sed非常像您从Linux习惯的那样。询问您的系统管理员是否已经存在GNU工具,或者是否可以安装它们。我不确定gnu sed的哪个版本开始支持'松弛'语法,因此请不要假定未经测试就可以解决它:-)

我希望这有帮助。

P.S.
欢迎来到StackOverflow,让我想起我们通常在这里做的三件事:1)当您获得帮助时,也尝试给予帮助,回答您专业领域中的问题2)阅读FAQs http://tinyurl.com/2vycnvr,3)当您看到很好时问与答,请使用灰色三角形 http://i.imgur.com/kygEP.png对它们进行投票,因为系统的信誉基于用户通过共享知识而获得的声誉。还要记住,通过按对勾符号 http://i.imgur.com/uqJeW.png接受可以更好地解决您的问题的答案(如果有)

关于sed - 如何使用sed在Solaris上删除下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8267383/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com