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)

    • vipaal@aussie.zone
      link
      fedilink
      arrow-up
      8
      ·
      1 year ago

      +1

      And

      In the off chance the files are not under git or some other VCS, might be a good idea to add the -b option to backup