파일의 모든 줄 끝에 다음 문자열을 추가하고 싶습니다. 웹에서 검색해 보았으나 관련 내용을 찾을 수 없었습니다. 나는 또한 다음 명령을 사용했습니다
sed -i -e "s?$?\$dest \$port \$fgt --pin '\$limit' --nogui;"? ipv42
누구든지 나를 도와줄 수 있습니까? 파일의 모든 줄 끝에 다음 문자열을 추가하고 싶습니다.
$dest $port $fgt --pin '\$limit' --nogui;
답변1
한 가지 방법은 heredoc, 백슬래시를 사용하여 변수 확장을 억제하는 것입니다. 우리가 하고 있는 일은 완전히 인용된 문자열(여러 줄) heredoc을 제공하는 것입니다.
sed -f - <<\_SED_ inputfile
s?$?$dest $port $fgt --pin '$limit' --nogui;?
_SED_
답변2
sed 스크립트는 다음을 제외하고 거의 작동합니다.
- s 명령의 마지막 구분 기호
?
는 따옴표로 묶어야 합니다. $
쉘은 검색 부분을$?
실행된 마지막 명령의 종료 상태로 해석하므로 검색 부분을 이스케이프 해야 합니다 .
올바른 명령:
sed -i -e "s?\$?\$dest \$port \$fgt --pin '\$limit' --nogui;?" ipv42