我正在尝试解析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'