학교 연구실에 대한 여러 명령이 포함된 sed 문자열을 작성하려고 하는데 동일한 오류 메시지가 계속 나타납니다. 다른 곳에서 도움을 얻으려고 하다가, 그들은 내가 어딘가에서 탈출할 기회를 놓치고 있다고 생각했습니다. 나는 그것이 작동하도록 최선을 다했습니다. 내가 시도한 몇 가지 다른 명령은 다음과 같습니다. 원래 문자열은 다음과 같습니다.
sed “s/,//g” usdeclar.txt | sed “s/://g” | sed “s/;//g” | sed “s/-//g” | sed “s/&//g” | sed “s/\.//g” | sed “/^$d” > sed_edits.txt
답변1
쉘 확장을 원하는 경우가 아니라면 sed 표현식을 작은따옴표로 묶는 것이 좋습니다 $d
. 예를 sed
들어 최종 표현식을 다음과 같이 생각하세요.
sed "/^"
쉘 변수가 $d
설정되지 않은 경우.
(향후 디버깅을 위해 sed "(your expression)" usdeclar.txt
각 표현식을 차례로 실행하여 어떤 표현식이 문제를 일으키는지 알아낼 수 있습니다.)
(참고로 tr -d '[-&;.]'
처음 4개와 동일한 작업을 수행해야 합니다 sed
.)
답변2
"원시 문자열"로 인용 한 명령에서 sed
사용하는 것으로 보입니다.
U+201C “ e2 80 9c LEFT DOUBLE QUOTATION MARK
U+201D ” e2 80 9d RIGHT DOUBLE QUOTATION MARK
(0x22) ASCII 문자를 대체합니다 "
. 쉘이 sed
이를 인식할 수 없습니다.
*nix 텍스트 편집기를 사용해 보십시오.
답변3
인터넷에서 sed [[:punc:]]를 검색해 보는 것이 좋습니다. 명령줄이 단축될 수 있습니다.