我想搜索一个模式,并且需要该模式的下一行。
在Linux中我尝试了如下,并且成功了。
sed -n '/pattern/{N;p}' ouputfile.txt
但在 AIX 中,这不起作用并抛出错误:
0602-404 函数无法解析
在 AIX 中如何实现这一点?
答案1
p
您在“}”之前缺少一个分号
sed -n '/pattern/{N;p;}' ouputfile.txt
您还可以将其编写为多个-e
命令:
sed -n -e '/pattern/{' -e 'N;p' -e '}' ouputfile.txt
最安全、最清晰的方法是将其跨行布局,因为此方法使您可以在 sed 代码中放置内嵌注释:
sed -ne '
# lines matching pattern
/pattern/{
N; # grab the next line into the pattern space
p; # print the pattern space holding the current+next line
}
' outputfile.txt
(不要忘记/和命令;
之间的)N
p
#
答案2
我认为 SED 可能不是在 AIX/*nix 系统中搜索字符串的最佳选择。它主要用于编辑文件流。
您需要使用grep
它来搜索文件中的模式。
grep -A 1 "pattern" file.txt
会给你匹配模式后的下一行。
谢谢,阿伦