如何在 aix 中使用多个 sed 命令?

如何在 aix 中使用多个 sed 命令?

我想搜索一个模式,并且需要该模式的下一行。

在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

(不要忘记/和命令;之间的)Np#

答案2

我认为 SED 可能不是在 AIX/*nix 系统中搜索字符串的最佳选择。它主要用于编辑文件流。

您需要使用grep它来搜索文件中的模式。

grep -A 1 "pattern" file.txt 会给你匹配模式后的下一行。

谢谢,阿伦

相关内容