sed: -e 표현식 #1, 문자 3: 예상치 못한 ","

sed: -e 표현식 #1, 문자 3: 예상치 못한 ","

나는 다음을 사용하여 스크립트를 실행합니다../myshfile.sh actors

sed -n -e "1,$1p" test.txt > test2.txt && mv test2.txt test.txt

아래와 같은 오류가 발생하는데 원인을 찾을 수 없습니다...

sed: -e expression #1, char 3: unexpected `,'

작은따옴표를 사용해 보세요

sed -n -e '1,$1p' test.txt > test2.txt && mv test2.txt test.txt

하지만 이것은 또 다른 오류를 발생시킵니다

sed: -e expression #1, char 4: unknown command: `1'

답변1

에서 셸로 확장된 내용은 "1,$1p"을 참조하세요 . 유효한 sed 주소가 아니므로 오류가 발생합니다. 제가 보기에는 오류 텍스트가 조금 이상하게 보이지만, 명령으로 인식한 다음 다시 쉼표에 대해 궁금해하는 것 같습니다.$1sed1,actorspactorspa

'1,$1p', $1아니요껍질이 펼쳐져 sed보이는 것입니다 1,$1p. $유효한 주소이고 마지막 행을 표시하는 데 사용되므로 1,$단순히 "모든 행"을 의미합니다. 1하지만 유효한 명령이 아니므로 오류입니다.

의도를 밝히지 않으셨기 때문에 도움을 드리기 어렵습니다.

답변2

구분 기호를 사용해 보세요.

sed -n -e "1,/$1/p" test.txt

당신이 시도하는 코드는 다음과 같이 확장됩니다.

sed -n -e 1,actorsp test.txt

psed는 정규식의 일부로 option을 사용합니다 actorp. 따라서 정규식과 옵션 사이에 구분 기호를 사용하여 작동하게 하세요.

관련 정보