sed 및 특수 문자가 포함된 pssh

sed 및 특수 문자가 포함된 pssh

이 sed를 실행하고 싶습니다.

sed "s?\(Defaults.*\)?\1:/etc/bla/foo/?" filename

그러나 pssh로 실행하면 실패하고 오류 코드 1로 종료됩니다.

pssh -h /root/listofservers -l root -A "sed "s?\(Defaults.*\)?\1:/etc/bla/foo/?" filename"

답변1

pssh다음과 같은 사용량 요약이 있습니다.

pssh [options] command ...

즉, 원격 호스트에서 실행하려는 명령을 인용하지 마십시오. 그렇지 않으면 인용된 전체 명령을 명령의 이름으로 처리합니다. 또한 작은따옴표로 묶인 문자열은 sed표현식처럼 정적입니다.

제안:

pssh -h /root/listofservers -l root -A sed 's#\(Defaults.*\)#\1:/etc/bla/foo/#' filename

나는 또한 정규식 문자 이기 ?때문에 변경했습니다. 여기서는 아무런 차이가 없지만 표현식을 구문 분석하려고 할 때 잠시 혼란스러웠습니다.#?

관련 정보