여러 줄에 sed 명령 쓰기

여러 줄에 sed 명령 쓰기

sed를 배우려고 하다가 이런 상황이 발생했습니다.

$ echo "abcd" | sed -n "/b/p"
abcd

잘 작동해요,

$ echo "abcd" | sed -n "
→ /b/p"
abcd

또 좋지만,

$ echo "Abcd" | sed -n "/b
/p"
sed: -e expression #1, char 2: unterminated address regex

버그 보고에 어떤 문제가 있나요?

답변1

/b/p완전한 sed 명령입니다. 각 sed 명령은 한 줄에 있어야 합니다. 한 줄에 입력 하면 /bsed는 이를 구문 오류로 처리합니다. 합격을 시도할 수 있습니다.

echo "abcd" | sed -n "/b"

결과를 확인하세요. 당신은 또한 시도할 수 있습니다

echo "abcd" | sed -n "/b/p
> p"

그리고 이 명령이 완료된 후 다음 명령이 적용되는 것을 관찰하세요.

답변2

sed패턴은 기본적으로 줄 기반이므로 두 번째 슬래시가 첫 번째 줄과 같은 줄에 있을 것으로 예상합니다. 에서 info sed:

SCRIPT 또는 SCRIPT-FILE의 명령은 세미콜론(';') 또는 줄 바꿈(ASCII 10)으로 구분할 수 있습니다.

답변3

Linux의 대부분 명령은 기본적으로 줄 기반이므로 두 번째 슬래시가 첫 번째 슬래시와 같은 줄에 있을 것으로 예상합니다. 세 번째 작업을 수행하려면 다음을 사용할 수 있습니다.

$ echo "Abcd" | sed -n "/b\
 /p"
 Abcd

관련 정보