I need to replace one line in a ton of . json files - eviltoast

I’m updating foundry to a version 11 and it broke an ass ton of my assets cause they’re all “verified version 10”

So all I have to do is change that number, they’re just maps so no need to update anything else, but I have like 400+ files to convert all in individual folders.

Please tell me there’s an easy way to do this. (I’m on Linux obviously)

  • duncesplayed@lemmy.one
    link
    fedilink
    arrow-up
    26
    ·
    1 year ago

    Find can actually do the sed itself if you don’t want to use a subshell and a shell loop.

    find . -type f -iname '*.json' -exec sed -i 's/"verified":"10"/"verified":"11"/' '{}' ';'
    
    • wewbull@feddit.uk
      link
      fedilink
      English
      arrow-up
      8
      ·
      1 year ago

      -print0 | xargs -0 sed -i to get a single sed process working across multiple files.

      Add a -P 8 to xargs to get 8 parallel processes.

    • brain_in_a_jar@kbin.social
      link
      fedilink
      arrow-up
      7
      ·
      1 year ago

      Change the ‘;’ to a ‘+’ for even more efficiency (no need to fork+exec a sed process per file, sed can take multiple files)