`sed: -e 표현식 #1, 문자 4: 알 수 없는 명령:` 하지만 줄 끝은 양호합니다.

`sed: -e 표현식 #1, 문자 4: 알 수 없는 명령:` 하지만 줄 끝은 양호합니다.

set -x"$(which tsc)" 파일에 포함된 줄을 삭제하고 싶지만 오류가 발생합니다:

$ sed -i ".bak" 'set -x' "$(which tsc)"
sed: -e expression #1, char 1: unknown command: `.'

나는 확인했다해결책은 여기에 있습니다이지만 내 줄 종결자는 입니다 LF.

답변1

문법 오류가 있습니다. 그 뒤에는 공백이 있을 수 없으며 -i확장자만 있으면 (초기) 오류 메시지가 표시됩니다.

또한 필요한 패턴에 따라 선을 제거하십시오 /<pattern>/ d( sed다른 방법도 있지만 이것이 가장 깨끗합니다). 이렇게 하세요:

sed -i".bak" '/set -x/ d' "$(which tsc)"

(선택 사항) 백업 확장 프로그램에는 공백이나 제어 문자가 포함되어 있지 않으므로 이 경우 따옴표 없이 이스케이프할 수 있습니다.

sed -i.bak '/set -x/ d' "$(which tsc)"

답변2

다음 명령을 시도해 보세요.

sed -i.bak '/pattern to match/d' ./infile

당신은 또한 참조 할 수 있습니다텍스트 파일에서 특정 문자열이 포함된 줄 삭제(스택 오버플로에서) include 제거에 대해 자세히 알아보세요 set -x.

관련 정보