sed를 사용하여 문서 줄의 문자열을 바꾸고 싶습니다. 어디전화 번호값은 변수에서 나와야 합니다.$var.
나는 시도했다:
sed '%ds/peer/md5/g' $var ./temp.txt
하지만 그것은 준다
sed: -e expression #1, char 1: unknown command: `%'
또한 시도했습니다:
sed -e '"$var"s/peer/md5/g'-i ./temp.txt
sed: -e expression #1, char 1: unknown command: `"'
마지막 시도:
printf '%ds/peer/md5/g;\n' 80 | sed -f - ./temp.txt
올바르게 인쇄되지만 출력 리디렉션(>) 또는 -i 명령을 사용하여 결과 파일을 저장할 수 없습니다.
답변1
나는 올바른 방법이 다음과 같다는 것을 깨달았습니다.
sed "$var"'s/string1/string2/' -i ./temp.txt
어디변하기 쉬운파일 줄 번호가 있는 변수입니다.
답변2
sed -i.bak "s/existing_string/$new_string/g" ./temp.txt
sed -i.bak "s/$existing_string/new_string/g" ./temp.txt
여기에 변수가 있습니다. $
변수를 사용할 때 내부 변수를 sed
사용해야 한다는 점을 기억하세요 ." "
이 옵션은 -i.bak
원본 파일의 백업 파일을 생성합니다.