在AIX服务器中使用Sed-i选项.函数无法在aix中解析



我正在尝试解析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..ersnggrouplist.0=无法解析测试。

请帮助我如何更改此命令以获得

我的期望:

myline1
ServiceNow(TAM(://pattern
myline2

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

sed '/ServiceNow (TAM)/i
servicenow.test..ersngrouplist.0=Test'

GNUsed的错误消息比AIX的要有用得多!

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

最新更新