Linux

以新名稱將 sed 文件重定向到另一個目錄

  • October 25, 2020

我有一個$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"

(你也應該像我上面所做的那樣總是引用你的變數)

引用自:https://unix.stackexchange.com/questions/616331