
인스턴스를 어떻게 교체할 수 있나요?
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]); ?>",'