2017-07-25 107 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 –