【发布时间】:2021-03-21 15:34:05
【问题描述】:
我正在尝试解析 AIX 服务器中的文件。我可以在 Ubuntu 中命名。
由于-i 选项不起作用,我使用了一个临时文件并将其重命名为原始文件。请让我知道我在哪里遗漏了一些东西。
我必须在文件中找到一个模式,并在该模式的上方或下方添加一行。
sed '/ServiceNow (TAM):/i myline1' filename > temp_file && mv temp_file filename
实际使用的命令:
sed '/ServiceNow (TAM)/i servicenow.test..ersngrouplist.0=Test' /itim/data/testfile > temp_properties && mv temp_properties /itim/data/testfile
错误: sed: Function /ServiceNow (TAM)/i servicenow.test..ersngrouplist.0=无法解析测试。
请帮助我如何更改此命令以获取
我的期望:
myline1
ServiceNow (TAM): //模式
myline2
【问题讨论】:
-
抱歉,信息不够。我们需要一些 actual 示例数据、您键入的 actual 命令以及 actual 错误/输出。理想情况下,尽可能简短 (minimal reproducible example)。发布伪代码 ("pattern" / "new_line" 并说“它失败了”并不能告诉我们任何事情,我们无法以这种方式为您提供帮助。
-
感谢您的建议。我已经更新了实际命令。现在会有帮助吗
-
这能回答你的问题吗? Insert newline using sed.
-
只是一个想法...在使用 "awkward" Unix 平台时(不想让任何人感到羞耻,但我的意思是 HP-UX、AIX 和 Tru64)我通常发现 Perl 在它们之间更加一致,并一次又一次地求助于 Perl 以获得全面有效的解决方案。 Tim Maher 的优秀著作 “Minimal Perl” 讨论了
awk、sed和grep的所有变体,并展示了如何克服 Perl 的差异。