2013-06-02 1 views
0

"sed -i"명령에 다음 코드를 작성하고 싶습니다. 나는이 작업을 수행 할 때, 그것은SED 명령 : 원하는 문자열을 삽입하지 않습니다.

if ($_SERVER["REQUEST_URI"] == '/site/template.php') { 
     $name=mysql_result($result,$i+1,"Name"); 
     $auth=mysql_result($result,$i+1,"Author"); 
     $date=mysql_result($result,$i+1,"Date"); 
     $body=mysql_result($result,$i+1,"Content"); 
} 

삽입하고 ">"일을받지 않습니다이 코드의 조각

sed -i '2s/^/if \(\$_SERVER[\"REQUEST_URI\"\] == \'/site/template.php\'\) \{\$name=mysql_result\(\$result,\$i+2,\"Name\"\);\$auth=mysql_result\(\$result,\$i+2,\"Author\"\);\$date=mysql_result\(\$result,\$i+2,\"Date\"\);body=mysql_result\(\$result,\$i+2,\"Content\"\);\}\n' ../site/written.php 

입니다 :

나는 다음과 같은 명령을 시도하고있다 껍질에.

그래서 실제로 어떻게해야합니까?

답변

1

첫 번째 결과를 얻으려면 큰 따옴표로 묶습니다.

세부 정보 : //site/template에도 있습니다. \\n\n에서 탈출하십시오. /을 추가하면 검색 표현식이 마무리됩니다.

sed -i "2s/^/if \(\$_SERVER[\"REQUEST_URI\"\] == \'\/site\/template.php\'\) \{\$name=mysql_result\(\$result,\$i+2,\"Name\"\);\$auth=mysql_result\(\$result,\$i+2,\"Author\"\);\$date=mysql_result\(\$result,\$i+2,\"Date\"\);body=mysql_result\(\$result,\$i+2,\"Content\"\);\}\\n/" ../site/written.php 
1

가 더 오류입니다 - 버전은 아래 그들에게

sed -i "s/^/if \(\$\_SERVER[\"REQUEST_URI\"\] == \"\/site\/template.php\"\) \{\n\t\$name=mysql_result(\$result,\$i+1,\"Name\");\n\t\$auth=mysql_result(\$result,\$i+1,\"Author\");\n\t\$date=mysql_result(\$result,\$i+1,\"Date\");\n\t\$body=mysql_result(\$result,\$i+1,\"Content\");\n}\n/" ../site/written.php 
를 수정