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)

  • TheDeadCell@lemmy.sdf.org
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    1 year ago

    Since I don’t know the structure of your files, I can’t help entirely, but I would use find/locate to get a list of file paths, then use a script to take that list and use sed for the replacement, like this:

    #!/bin/bash
    for i in ListOfFilePaths.txt
    do
      sed -i "s/oldtext/newtext/g" $i
    done
    

    Please copy the entire line for oldtext and newtext to avoid accidental replacements.

    Also, I am very new to scripting, and this likely has multiple problems with it. I am just throwing out ideas.

    • TheDeadCell@lemmy.sdf.org
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      1 year ago

      Looked at your github. I would do this in a script:

      #!/bin/bash
      find /base/path/of/files -type f -name "module.json" > ListOfFilePaths.txt
      
      for i in ListOfFilePaths.txt
      do
        sed -i "s/oldtext/newtext/g" $i
      done
      

      Once again, probably not the most efficient way to do it, but it might work.