여러 줄로 된 파일의 어디에서나 Logmon이라는 단어가 있는지 파일을 검색하고 싶습니다. 일치하는 항목이있는 각 행에 대해 행 시작 부분에 #을 삽입하십시오. 나는 이것을 사용하여 이것을 달성 할 수있다 :
sed -i '/Logmon/ s/^/#/' nrds.cfg
위의 목표는 달성되었지만 원격 서버 목록 에서이 작업을 수행하는 데 문제가 있습니다. 아래는 내가 지금까지 가지고있는 것입니다.
#!/bin/ksh
DEST="/usr/local/nrdp/clients/nrds/"
for x in `cat /home/jack/hostlist`
do
SSH_STATUS=$(ssh -n -o BatchMode=yes -o StrictHostKeyChecking=no $USER@$x "pwd" >/dev/null)
if [[ $? = "0" ]];then
ssh -o "StrictHostKeyChecking no" $x "sudo /usr/localcw/bin/eksh -c 'cd $DEST; sed -i "/Logmon/ s/^/#/" nrds.cfg'"
else
echo "Cannot connect to $x" >> badhosts
fi
done
위는 다음과 같은 오류를 반환합니다. sed : -e expression # 1, char 8 : missing command
인용에 문제가 있거나 하나 이상의 슬래시를 이스케이프해야한다고 생각합니다. 나는 많은 것을 시도했지만 항상 위의 동일한 오류가 발생하는 것 같습니다.