2014-11-14 41 views
1

我的文件「Setting.xml的」,其中包含了一些環境變量呼應貓內容到一個文件

<localRepository>/Users/$(whoami)/.m2/repository 

我想寫Setting.xml的內容,存入production.xml並更換$(whomai )與我的userid

我試過下面

cat setting.xml | echo > production.xml 

,但不知道我怎麼可以在內容傳遞給我的echo命令

回答

3

你可以試試:

sed "s/\$(whoami)/$(whoami)/" <setting.xml>production.xml 

sed是一個流編輯器,並在上面替換了t他的文字$(whoami)與命令whoami的結果。

+0

也許你能爲做這裏採用更通用的方法,並用所有'$(..)'來代替它們的擴展? –

+1

@TomFenech也許,但它對我的口味太危險了,像' $(rm -rf /)':)用sed編輯XML,完全是錯誤的;;) – jm666

+0

是的,你可能是對的:) –

-5
cat setting.xml > production.xml && sed -i "s/::whoami/$(whoami)/g" production.xm 

只是重新與> cat命令輸出最好是在你的文件中使用::whoami代替$(whoami)

模板:

<localRepository>/Users/::whoami/.m2/repository 
0

通用的做法是:

eval echo `cat setting.xml | sed -r 's/([<>])/\\\\\1/g'` > production.xml 

可能需要轉義字符多於只是<>

但安全問題提防像@ jm666解釋

相關問題