인스턴스를 교체하는 방법
id="ogwb"
그리고
id="ogwb" name="ogwb" value="<?php echo htmlspecialchars($_POST['ogwb']); ?>"
사용할 것인가 sed
, 교체할 것인가?
답변1
올바른 명령:
sed -E 's/^id="([^"]+)"$/& name="\1" value="<?php echo htmlspecialchars($_POST['"'\1'"']); ?>"/'
포함된 작은따옴표가 필요한 경우 큰따옴표에서 작은따옴표로 전환됩니다. Bash에서는 작은따옴표 안에 작은따옴표를 포함할 수 없습니다. 기간.
하지만 따옴표는 문자열이 아니기 때문에 중요하지 않습니다.터미네이터Bash에서는 서로 다른 인용 스타일 사이의 구분 기호일 뿐입니다. 그래서:
some-command 'This is in a single quoted string'"'"'This is another quoted string, but is part of the same argument to some-command'
^^^
This single quote is inside of double quotes.
sed
쉘 참조가 쉘 참조 와 상호 작용하는 방식에 대해 걱정하지 않으려면 sed
명령을 파일에 붙여넣고 를 사용하여 호출하십시오 sed -f
.
답변2
echo 'id="ogwb"' | sed 's,id=\(.*\),id=\1 name=\1 value="<?php echo htmlspecialchars($_POST[\1]); ?>",'