[英]Perl substitution using string that contains a dollar sign on windows
我正在Windows上使用perl,我正在嘗試使用perl來使用包含美元符號的windows變量替換文件中的占位符。 有誰知道正確的用法是使它與美元符號一起使用。 我嘗試了各種各樣的方法,似乎無法讓它發揮作用。
例如,我有一個屬性文件,其中包含一個令牌(!MYPASSWORD!),我正在嘗試替換,如:
somevalue="!MYPASSWORD!"
我有一個批處理文件,查找一個名為NEWPASSWORD的變量,其中包含密碼$ abc12345 $,我想使用perl替換來替換如下的值。 注意我可能並不總是知道$符號的位置,所以我無法逃脫它們。 例如,另一個密碼可能是abc $ 124 $ 563:
echo %NEWPASSWORD% <-- this would contain $abc12345$
perl -p -i.bak -e "s/!MYPASSWORD!/%NEWPASSWORD%/g" a.properties
完成后我想要a.properties:
somevalue="$abc12345$"
提前致謝
使用'
作為regexp delimeter符號。 它將禁用所有變量替換:
perl -p -i.bak -e "s'!MYPASSWORD!'%NEWPASSWORD%'g" a.properties
我認為你從用戶輸入中獲取密碼。 為什么不在Perl中這樣做而不必經歷批處理,因為你已經在使用Perl? 它更容易。 然后,您可以使用Term :: Inkey等模塊來屏蔽密碼和內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.