簡體   English   中英

使用包含窗口上的美元符號的字符串進行Perl替換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM