패턴을 검색하고 싶은데 패턴의 다음 줄이 필요합니다.
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
패턴을 일치시킨 후 다음 줄을 제공합니다.
고마워요, 앨런