Linux
perl 一個襯裡 + 匹配單詞並在分隔符後刪除字元串
我使用 linux/solaris 機器,我需要在我的 ksh 腳本中添加一些規則:
請告知如何匹配文件中的密碼字,並使用perl liner命令刪除分隔符“=”後的值密碼
其次它只會刪除第一個密碼!
例如
more file ( before delete the password ) Password fkwf324ei23 Password=fkwf324ei23 Pass_word=fevme Secret_Password=vrev873662j Password=fkwf324ei23
.
more file ( after delete the password ) Password fkwf324ei23 Password= Pass_word=fevme Secret_Password=vrev873662j Password=fkwf324ei23
只需在一行的開頭替換 Password= ,然後用字元串替換任何內容
Password=
:perl -i~ -pe 's/^Password=.*/Password=/' file
更新
要僅替換第一次出現,請添加一個標誌:
perl -i~ -pe '$changed = s/^\s*Password=.*/Password=/ unless $changed;' file
由於您只想更改第一次出現並保留文件的其餘部分,因此您需要在此處進行一些狀態:
perl -i~ -pe 'BEGIN { $y=1 }; ($y) && (s/^Password=\K.*//) && ($y=0)' file