所以,我查看了其他問題,沒有具體的東西似乎可以幫助我。我有一個文件,其日期變量設置爲mm/dd/yyyy,我想用其替換日期。Sed替換日期
例如:
version.js
//Application Version Information
app_date="7/07/2015";
...
而且我想用sed來替換它。我實際上有一個shell腳本替換了這個文件中的很多東西,除了日期之外,所有的工作都被替換了。目前我正在嘗試的是:
sed -i -e 's:app_date="[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]":app_date="$(date %m/%d/%Y)":g'
但是,這並沒有讓我得到我想要的結果。我也嘗試過:
sed -ibak 's/app_date=\"[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9]\"/app_date=\$(date +%m/%d/$Y)\"/g'
這兩者似乎都不起作用。
任何想法?
編輯補充:
我已經成功地採用的解決方案是肖恩明亮的雙引號:
sed -i -e "s:app_date=".*";:app_date="$(date +%m/%d/%Y)";:g" version.js
這工作完全滿足我的需求。
你的預期產出是多少? – anubhava
您的示例「日」值'7 /'與您的[0-9] [0-9] /'的正則表達式不匹配。'也可以使用YYYY-MM-DD格式作爲文件日期,並且它們將自動排序'ls'列表。祝你好運。 – shellter
正則表達式的一般規則是「不要過度匹配」。因此,請參閱Sean Bright更新後的第二部分,以瞭解如何避免匹配您不關心的內容。 –