sed 파일을 새 이름으로 다른 디렉토리로 리디렉션

sed 파일을 새 이름으로 다른 디렉토리로 리디렉션

일부 템플릿을 수행하기 위해 $template호출할 파일이 있습니다 . 이 작업이 완료되면 새 파일을 셸 스크립트의 일부인 다른 디렉터리로 리디렉션 하고 sed싶습니다 .$templateoutputnewtemplate

        sed -r -i.bak -e "{
            # templating done here.
        }" $template > $data/$newtemplate

$newtemplate이렇게 하면 디렉터리 에 파일이 성공적으로 생성되지만 $outputsed를 호출하거나 템플릿 작성을 수행하지 않습니다.
간단히 말해서, 파일을 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"

(너도 그래야 해항상 변수를 인용하세요.위에서 했던 것처럼)

관련 정보