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