일치하는 결과의 특정 부분을 나중에 대체 할 변수로 저장하려고합니다. 저는 이것을 손으로하기 전에 필요한 변수를 찾는 대신 하나의 라이너에 보관하고 싶습니다.sed 명령에서 자리 표시 자/변수 사용
아파치를 구성하고, 사용 mod_rewrite를, 당신은 패턴의 특정 부분을 specificy 수있는이 같은 변수로 사용되는 : 괄호 안에 포함 년대 패턴 일치의 일부 $ 1로 저장됩니다
RewriteRule ^www.example.com/page/(.*)$ http://www.example.com/page.php?page=$1 [R=301,L]
나중에 사용하십시오. 따라서 URL이
www.example.com/page/home
인 경우
www.example.com/page.php?page=home
으로 바뀝니다. 경기의 "홈"부분은 괄호 안의 패턴 부분이므로 $ 1에 저장되었습니다.
sed
명령을 사용하여이 기능과 같은 기능을 원한다면 SQL 덤프 파일의 여러 문자열을 자동으로 바꿔서 각 테이블을 만들기 전에 drop 명령을 추가해야하지만 할 테이블 이름을 알아야합니다.
...
CREATE TABLE `orders`
...
내가 좋아하는 뭔가를 실행해야합니다 :
:의 결과를 얻을 수cat dump.sql | sed "s/CREATE TABLE `(.*)`/DROP TABLE IF EXISTS $1\N CREATE TABLE `$1`/g"
을이 덤프 파일은 같은 것을, 그래서이 포함 된 경우
...
DROP TABLE IF EXISTS `orders`
CREATE TABLE `orders`
...
sed
명령의 mod_rewrite 구문을 사용하여 논리적 예제로 사용하고 있습니다.
제안 사항?
https://www.gnu.org/software/sed/manual/html_node/Regular-Expressions.html이 설명 주셔서 감사합니다, 그것은 완전히 내 질문에 대답했다. –