是否可以使用一些bash命令查找/替换文件中的某些字符?

Ste*_*eve 1 bash command yaml replace find

我想找到这个文件/path/to/file/profile.yaml是否包含以下值:

    Cpanel::Easy::PHP5::Curl: 0
    Cpanel::Easy::PHP5::CurlSSL: 0
Run Code Online (Sandbox Code Playgroud)

如果是,则将1替换为0,如下所示:

    Cpanel::Easy::PHP5::Curl: 1
    Cpanel::Easy::PHP5::CurlSSL: 1
Run Code Online (Sandbox Code Playgroud)

这一切都在bash命令中!

我怎样才能做到这一点 ?

Oli*_*rth 5

随着sed.例如:

sed -i 's/Cpanel::Easy::PHP5::Curl: 0/Cpanel::Easy::PHP5::Curl: 1/' myfile.txt
Run Code Online (Sandbox Code Playgroud)

正如@kojiro指出的那样,-i不可移植,所以你可以随时这样做:

sed 's/Cpanel::Easy::PHP5::Curl: 0/Cpanel::Easy::PHP5::Curl: 1/' myfile.txt > tmp.txt
mv tmp.txt myfile.txt
Run Code Online (Sandbox Code Playgroud)