sed 명령 코드가 잘못되었습니다

sed 명령 코드가 잘못되었습니다

이것은 내가 사용하는 명령입니다:

system_profiler | sed -n -e '/SATA/SATA Express:/,/Software:/ p'

그것은 나에게이 오류를 주었다

sed: 1: "/SATA/SATA Express:/,/S ...": invalid command code S

특히 거의 동일한 명령이 작동할 때 왜 작동하지 않는지 이해할 수 없습니다.

system_profiler | sed -n -e '/Hardware Overview:/,/Installations:/ p' 

모르겠어요? S를 피할 이유가 없습니다.

답변1

/둘 사이의 관계를 벗어나 문자 그대로 SATA만듭니다 SATA Express:.

system_profiler | sed -n -e '/SATA\/SATA Express:/,/Software:/ p'

또는 다음 구문을 사용하여 다른 구분 기호를 사용하십시오.

system_profiler | sed -n -e '\|SATA/SATA Express:|,/Software:/ p'

답변2

/Hardware Overview:/,/Installations:/ p

Hardware Overview:이 코드는 일치하는 줄과 일치하는 줄 사이의 모든 줄을 인쇄한다는 의미입니다 Installations:.

SATA Express:/두 번째 코드는 의미가 없습니다. 주소 뒤에 넣을 수 없습니다 . sed거기에서 명령을 기다리거나 다른 주소 뒤에 쉼표가 올 때까지 기다리십시오. 무엇을 달성하고 싶나요?

관련 정보