일부 템플릿을 수행하기 위해 $template
호출할 파일이 있습니다 . 이 작업이 완료되면 새 파일을 셸 스크립트의 일부인 다른 디렉터리로 리디렉션 하고 sed
싶습니다 .$template
output
newtemplate
sed -r -i.bak -e "{
# templating done here.
}" $template > $data/$newtemplate
$newtemplate
이렇게 하면 디렉터리 에 파일이 성공적으로 생성되지만 $output
sed를 호출하거나 템플릿 작성을 수행하지 않습니다.
간단히 말해서, 파일을 sed
사용 $template
하고 템플릿 파일을 가져와서 output
새 이름의 디렉터리 로 리디렉션하는 방법은 무엇입니까?newtemplate
답변1
옵션은 출력이 생성되지 않음을 -i
의미합니다 . sed
대신 원본 파일을 수정합니다. 따라서 명령이 제대로 작동하고 모든 작업을 수행하고 있지만 #templating
수행 중이며 $template
출력이 없습니다. 출력이 없으므로 > $data/$newtemplate
빈 파일만 생성됩니다.
원본 $template
파일에 영향을 주지 않고 명령 출력을 sed
표준 출력으로 인쇄하여 표준 출력을 with 로 리디렉션하는 파일로 인쇄 하려면 이 옵션을 > $data/$newtemplate
제거해야 합니다 .-i
sed -r -e "{
# templating done here.
}" "$template" > "$data/$newtemplate"
(너도 그래야 해항상 변수를 인용하세요.위에서 했던 것처럼)