Linux

perl 一個襯裡 + 匹配單詞並在分隔符後刪除字元串

  • February 4, 2014

我使用 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

引用自:https://unix.stackexchange.com/questions/113477