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

Ithorian [comrade/them, null/void]@hexbear.net to Linux@lemmy.ml – 33 points –

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)

33

You are viewing a single comment

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.

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.