Linux
以新名稱將 sed 文件重定向到另一個目錄
我有一個
$template
文件可以呼叫sed
來做一些模板。完成此操作後,我想將新$template
文件重定向到另一個名為output
的目錄,新文件名將是newtemplate
.我的 shell 腳本的一部分:
sed -r -i.bak -e "{ # templating done here. }" $template > $data/$newtemplate
這成功創建了一個文件
$newtemplate
到$output
目錄,但它不呼叫 sed 或做任何模板。所以簡而言之,我如何
sed
在$template
文件上使用然後獲取模板文件並將其重定向到output
新名稱下的目錄newtemplate
的
-i
選項sed
意味著它不會產生任何輸出。相反,它將修改原始文件。所以你的命令工作正常,它正在做任何事情#templating
,但它正在這樣做$template
,沒有輸出。由於沒有輸出,> $data/$newtemplate
只是創建了一個空文件。如果您不想影響原始
$template
文件,而是希望將sed
命令的輸出列印到標準輸出,並因此列印到您將標準輸出重定向到 with 的文件中> $data/$newtemplate
,那麼您需要刪除該-i
選項:sed -r -e "{ # templating done here. }" "$template" > "$data/$newtemplate"
(你也應該像我上面所做的那樣總是引用你的變數)