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 명령은 한 줄에 있어야 합니다. 한 줄에 입력 하면 /b
sed는 이를 구문 오류로 처리합니다. 합격을 시도할 수 있습니다.
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