변수로 입력된 줄의 문자열 바꾸기 [중복]

변수로 입력된 줄의 문자열 바꾸기 [중복]

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

  1. sed -i.bak "s/existing_string/$new_string/g" ./temp.txt
  2. sed -i.bak "s/$existing_string/new_string/g" ./temp.txt

여기에 변수가 있습니다. $변수를 사용할 때 내부 변수를 sed사용해야 한다는 점을 기억하세요 ." "

이 옵션은 -i.bak원본 파일의 백업 파일을 생성합니다.

관련 정보