我有一个字符串如下。使用sed我想在名称后面替换值详细信息:“user”和密码“66666”输入字符串:
名称:“用户” 价值:“55555” 用户名:“test”…
试试这个:
sed -e '/name: *"user"/{' -e ':a;' -e 'N;/password *:/!ba;' -e 's/\(value *: *\)"[^"]*/\1"66666/;s/\(password *: *\)"[^"]*/\1"66666/;}' test.txt name: "user" value: "66666" username: "test" value: "77777" password : "66666"
sed 是一个流编辑器,默认情况下它分别读取和处理每一行。 在这里我用过 N 阅读并附加下一行,并替换其中的内容。 我删除了 -i 切换所以你可以先在shell上测试它,你可以在结果好的时候把它添加回来。
sed
N
-i