用sed和单引号和reg x替换复杂的字符串

时间:2019-05-02 16:20:31

标签: linux shell sh

大家好,我对用sed和regex替换字符串有疑问。

我有一个带有重复文本的中心,如下所示。

quiver3

我想用匹配的CREATE KEYSPACE xyz WITH replication = { 'class': 'NetworkTopologyStrategy', 'NA': '3' }; USE abc; CREATE TABLE yyy ( . . . ) WITH caching='{"keys":"ALL", "rows_per_partition":"NONE"}' AND abcdefg.... caching='{.abcde..}替换字符串

***不在乎存储桶中的任何文本。

  1. WITH replication = {..abc..}

预期caching='{..abc...}'

  1. caching='KEYS_ONLY'

预期WITH replication = {..abcdefg...}

我已经在下面尝试过命令,但是没有成功。它替换并剪切了全文,只剩下1行。

WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }

sed -r "s/caching='\{(.|\n)*?\}'/caching='KEYS_ONLY'/g")

有人可以建议我吗?我该怎么办?。

1 个答案:

答案 0 :(得分:0)

您可以使用tr将\ n替换为\ f 接着 请尝试使用[^ \“] *?与非贪婪匹配