이 광기를 어떻게 바꿀 수 있습니까?

이 광기를 어떻게 바꿀 수 있습니까?

인스턴스를 어떻게 교체할 수 있나요?

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저장 하고 를 사용하여 호출하세요 .sedsed -f

답변2

echo 'id="ogwb"' | sed 's,id=\(.*\),id=\1 name=\1 value="<?php echo htmlspecialchars($_POST[\1]); ?>",'

관련 정보