sed 구문을 이용해서 특정 문자열을 치환하는 쉘 스크립트를 만드려고 하는데
사용자의 입력을 받아서 문자열을 치환하는 것이 목표야
#!/bin/bash
cat hw.txt
echo 'Please type string you want to change'
read answer
echo 'How can I change string you typed?'
read answer2
echo -e "\n"
sed 's/$answer/$answer2/' hw.txt
이렇게 작성했는데
두번의 입력을 answer,answer2 로 받아서 answer에서 받은 것을 answer2로 바꾸려고 하는데
원하는대로 작동을 안해 ㅠㅠ
sed 구문이 뭔가 잘못된 거 같은데 오류가 뭔지 정확히 모르겠엉
알려주면 고맙겠어 ㅠ ㅠ ㅠ
홑따옴표를 쓰면 내부 문자열의 확장이 안 이루어집니다. 즉 $answer이 answer변수의 내용물로 확장되지 않고 있는 그대로의 문자열이 됩니다. sed 명령줄에서 쌍따옴표를 써보세요.
그리고 노파심에서 말하는데 sed 명령어 저렇게 쓰면 파일자체 내용이 바뀌는 건 아니고 치환 후의 내용을 표준출력해주는 것으로 끝나는 건 알고 계시죠?
츄럴이인가
이따가 해볼게요! 네 저렇게쓰면 출력만 해주고 끝나는데 txt파일의 내용자체를 바꿔주려면 어떻게 해야하나요??
-i 옵션을 주면 됩니다.
감사합니다! 이따 수정해봐야겠네용
아님