Linux 在AIX服务器中使用Sed-i选项。无法在aix中分析函数

Linux 在AIX服务器中使用Sed-i选项。无法在aix中分析函数,linux,sed,scripting,aix,Linux,Sed,Scripting,Aix,我试图在AIX服务器中解析一个文件。我可以在Ubuntu中命名 由于-i选项不起作用,我使用了一个临时文件并将其重命名为原始文件。请让我知道我错过了什么 我必须在文件中找到一个模式,并在模式上方或下方添加一行 sed '/ServiceNow (TAM):/i myline1' filename > temp_file && mv temp_file filename 实际使用的命令: sed '/ServiceNow (TAM)/i servicenow.test..e

我试图在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

问题在于,POSIX版本的
sed
不接受在同一行上有附加文本的
i
命令。您需要在
i
之后放置一个
\
,并将要插入的文本放在下一行

sed '/ServiceNow (TAM)/i\
servicenow.test..ersngrouplist.0=Test'
来自GNU
sed
的错误消息远比AIX的有用

$ sed --posix '/ServiceNow (TAM)/i servicenow.test..ersngrouplist.0=Test'
sed: -e expression #1, char 21: expected \ after `a', `c' or `i'

对不起,这还不够。我们需要一些实际的示例数据、您键入的实际命令以及实际的错误/输出。理想情况下尽可能简短()。发布伪代码(“模式”/“新线路”并说“它失败了”并不能告诉我们任何事情,我们也不能这样帮助你。谢谢你的建议。我已经用实际命令进行了更新。这会有帮助吗?这是否回答了你的问题?只是一个想法……在使用“笨拙”的Unix平台时(我并不想让任何人感到羞耻,但我指的是HP-UX、AIX和Tru64)我通常发现Perl在所有这些方面都要一致得多,并且一次又一次地求助于Perl来获得全面有效的解决方案讨论
awk
sed
grep
的所有变体,并说明如何使用Perl克服这些差异。