다음 코드 줄이 있습니다
BalancerMember http://server3:82 status=D
BalancerMember http://server2:80 status=D
포트 82에 대한 항목을 검색한 다음 삭제하고 싶습니다 status=D
.
BalancerMember http://server3:82
이것을 시도했지만 작동하지 않습니다
grep :82 app.conf | sed -i 's/status=D/ /'
sed: no input files
파일을 변경하고 싶기 때문에 -i
옵션이 필요합니다 .sed
어떤 제안이라도.
답변1
완전한 sed 솔루션을 테스트할 수 있습니다.
sed -i '/:82 /s/status=D//' file
어디
/:82 /
82가 있는 행을 선택하세요.s/status=D/
상태를 다음으로 대체//
아무것도 없습니다.
답변2
샘플 데이터에 따르면 이것이 작동합니다
awk '/:82 /{print $1,$2; next} {print}' inputfile
출력을 다른 파일로 리디렉션할 수 있습니다.
awk '/:82 /{print $1,$2; next} {print}' inputfile >> newfile
일반적으로 말해서, 나는 도움이 된다면 원본 데이터를 변경하고 싶지 않습니다.
답변3
주어진 입력을 기반으로
awk '$2~/:82$/{$NF=""}1' input.txt > output.txt