2017-07-25 104 views
0

我在一個目錄中有一個文件,我想用另一行代替一個特定的行。如何在bash腳本中替換文件的特定行?

在我的情況下,行是 - 「密碼必需pam_pwquality.so」 ,我希望把它作爲

「#password口令必需pam_pwquality.so」。

我想是這樣的:

cat test1 | while read line 
    do 
     if grep -q "$str" test1; then 
      echo "found" 
      sed -i -e "s/${str}/${str1}/g" test1 

     fi 

卻是露出多個發現語句,但我只有一個該行的副本。

回答

0
$ x='password requisite pam_pwquality.so' 
$ sed -i "s/\($x\)/#\1/" file 
+0

@priyankaraut如果該行不存在,該腳本不會做任何事情 – Aserre

+0

該行是有.....但很多都像密碼必要pam_pwdqc.so –