sed-尝试替换比赛后的第一个匹配项

用户名

我正面临使我发疯的情况。我正在设置使用json文件的更新服务器。不要问为什么或如何,它很糟糕,这是我实现它的唯一可能性。

我一直在尝试和研究HOURS(很多),因为我进行了弹道运动并想自己破解。但是我必须意识到自己陷入困境并需要帮助。

非常抱歉,但是我认为这很重要...

该文件是一个衬纸,并重复以下顺序(更改值)(当然)。

"plugin_name_foo_bar": {"buildDate": "bla", "dependencies": [{"name": "bla", "optional": true, "version": "1.00"}], "developers": [{"developerId": "bla", "email": "[email protected]", "name": "Bla bla2nd"}], "excerpt": "some text {excerpt} !bla.png|thumbnail,border=1! ", "gav": "bla", "labels": ["report", "scm-related"], "name": "plugin_name_foo_bar", "previousTimestamp": "bla", "previousVersion": "1.0", "releaseTimestamp": "bla", "requiredCore": "1", "scm": "github.com", "sha1": "ynnBM2jWo25ZLDdP3ybBOnV/Pio=", "title": "bla", "url": "http://bla.org", "version": "1.0", "wiki": "https://bla.org"}, "Exclusion": {"buildDate": "bla", "dependencies": [],

然后将下一个插件块直接粘贴。我现在要做的是搜索,"plugin_foo_bar": {"因为这是新插件描述块的唯一标识符。我想替换之后出现的第一个sha1值。那就是我不断失败的地方。我总是抓住整个文件中的第一个,最后一个或任何出现的位置,而不是块:("title"是sha1值之后的唯一标识符。

因此,我尝试使。*的贪婪程度降低,但效果不佳。

上一次尝试前往:sed -i 's/("name": "plugin_name_foo_bar.*sha1": ")([a-zA-Z0-9!@#\$%^&*()\[\]]*)(", "title"\)/\1blablabla\2/1'default.json

找到该插件的sha1值,但仍然没有乐趣。我希望有人知道-最好是一种更简单的方法-在我现在继续尝试和错误之前,直到我不得不呕吐和吓呆为止。

我正在Windows上使用SED,因此Unix方法可能会帮助我弄清楚如何批量实现此目的,但请尽可能将其设置为单行。脚本真的很难转换。

我只需要SED,不需要其他工具(如AWK)的其他解决方案。这绝对是讨论之外。

任何帮助表示赞赏:)

干杯扬

吉尔

正如sputnick指出的那样,解析有点超出sed的含义。仍然,sed的Turing-complete并大胆地将其做为您想要的事情,可以满足我们中许多人不时感受到的{sad,masoch}主义的敦促。

这甚至很容易。

sed '
   s/"sha1": /\n/g
   s/\("name": "plugin_name_foo_bar"[^\n]*\n"\)[^"]*/\1thenewsha/
   s/\n/"sha1": /g
'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用“ sed”仅替换第一个和最后一个匹配项

来自分类Dev

仅删除sed的第一个匹配项

来自分类Dev

提取符合sed的第一个匹配项

来自分类Dev

sed更改另一个匹配项的第一个匹配项

来自分类Dev

使用sed替换文件中的第一个匹配项-为什么要打印后续行?

来自分类Dev

sed以匹配多个匹配项中的第一个模式

来自分类Dev

用 sed 匹配后替换第一个匹配

来自分类Dev

sed 多个匹配替换第一个匹配值

来自分类Dev

如何在sed行中匹配除第一个匹配项以外的所有匹配项?

来自分类Dev

使用sed替换为第一个匹配字符

来自分类Dev

仅在第一个匹配行上用sed替换

来自分类Dev

如何用sed替换第一个匹配文本块?

来自分类Dev

sed - 在第一个正则表达式匹配后替换逗号

来自分类Dev

sed comand在第一次比赛后没有替换值

来自分类Dev

sed仅删除第一个模式匹配

来自分类Dev

如何使用sed删除所有行,直到第一列中的第一个匹配项?

来自分类Dev

SED:在第一次比赛后追加

来自分类Dev

比赛后使用sed替换一定数量的字符

来自分类Dev

Grep和sed仅返回第一个比赛

来自分类Dev

Grep和sed只返回第一个比赛

来自分类Dev

sed仅替换特定文件的第一个前导空格匹配-处理仅CR的行尾

来自分类Dev

sed仅替换行中的第一个和最后一个空格

来自分类Dev

sed:仅用该行中第一个出现的字符串替换单词,直到最后一个匹配为止

来自分类Dev

如何使用sed匹配并保持第一个数字在一行中?

来自分类Dev

用行中的第一个字符替换sed

来自分类Dev

执行递归查找并仅用sed替换会更改第一个文件

来自分类Dev

sed替换所有字符,直到第一个空格

来自分类Dev

使用sed或awk用第一个单词替换空格

来自分类Dev

sed命令检查任何列中的第一个单词并替换

Related 相关文章

  1. 1

    使用“ sed”仅替换第一个和最后一个匹配项

  2. 2

    仅删除sed的第一个匹配项

  3. 3

    提取符合sed的第一个匹配项

  4. 4

    sed更改另一个匹配项的第一个匹配项

  5. 5

    使用sed替换文件中的第一个匹配项-为什么要打印后续行?

  6. 6

    sed以匹配多个匹配项中的第一个模式

  7. 7

    用 sed 匹配后替换第一个匹配

  8. 8

    sed 多个匹配替换第一个匹配值

  9. 9

    如何在sed行中匹配除第一个匹配项以外的所有匹配项?

  10. 10

    使用sed替换为第一个匹配字符

  11. 11

    仅在第一个匹配行上用sed替换

  12. 12

    如何用sed替换第一个匹配文本块?

  13. 13

    sed - 在第一个正则表达式匹配后替换逗号

  14. 14

    sed comand在第一次比赛后没有替换值

  15. 15

    sed仅删除第一个模式匹配

  16. 16

    如何使用sed删除所有行,直到第一列中的第一个匹配项?

  17. 17

    SED:在第一次比赛后追加

  18. 18

    比赛后使用sed替换一定数量的字符

  19. 19

    Grep和sed仅返回第一个比赛

  20. 20

    Grep和sed只返回第一个比赛

  21. 21

    sed仅替换特定文件的第一个前导空格匹配-处理仅CR的行尾

  22. 22

    sed仅替换行中的第一个和最后一个空格

  23. 23

    sed:仅用该行中第一个出现的字符串替换单词,直到最后一个匹配为止

  24. 24

    如何使用sed匹配并保持第一个数字在一行中?

  25. 25

    用行中的第一个字符替换sed

  26. 26

    执行递归查找并仅用sed替换会更改第一个文件

  27. 27

    sed替换所有字符,直到第一个空格

  28. 28

    使用sed或awk用第一个单词替换空格

  29. 29

    sed命令检查任何列中的第一个单词并替换

热门标签

归档