2017-01-23 41 views
1

我正在壓縮生產的JS文件,希望能夠在壓縮之前自動化一些所需的單調乏味;其中的第一行:Shell腳本在壓縮之前更改文件中的var?

var deploy = false, test_ads_dev = false, show_interstitial = false,

我需要var deploy = false改爲var deploy = true,在文件中:app/assets/game.js(如在壓縮機命令)。

我怎樣才能獲得腳本來執行subsitution?

#!/bin/bash 
first="var deploy = false" 
second="var deploy = true" 
first=${first/$second} 
java -jar yuicompressor-2.4.8.jar -v -o game.min.js app/assets/game.js 
+0

有什麼期待? – Inian

+0

我需要'var deploy = false'更改爲'var deploy = true'。謝謝。 – tidelake

+0

我會認爲一個小小的sed命令,也許使用「就地」編輯選項,將允許你正在尋找的東西。 – Fred

回答

1

只需使用一個最小的sed這下面做就地更換。

sed -i.bak 's/\<var deploy = false\>/var deploy = true/' app/assets/game.js 

bash是不是真的做的文本文件模式搜索/替換,而sedawk將是合適的工具。

+0

不工作,仍然顯示'var deploy = false' – tidelake

+0

@tidelake:您以前的評論是冒犯性的,因爲人們不會在未經測試的情況下發布答案,它工作得很好對我來說 – Inian

+0

有沒有可能丟失的'-i.bak'? – tidelake

0

謝謝你們。我自己也得到了另外60%的答案。

#!/bin/bash 
sed -i.bak 's/var deploy = false/var deploy = true/' app/assets/game.js 
java -jar yuicompressor-2.4.8.jar -v -o game.min.js app/assets/game.js 
mv app/assets/game.js.bak app/assets/game.js 
+0

這可以通過引用'sed'的第一部分,以便它將替換「var deploy = false」的完全匹配。如果您不想更改原始文件,請刪除'-i'並將輸出指向另一個文件。 –

相關問題