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 패턴을 일치시킨 후 다음 줄을 제공합니다.

고마워요, 앨런

관련 정보