Editing a file without an editor
I don't use sed very often, but it's very handy when I do use it, particularly when needing to make a small change to a large file.
Fixing a JSON fileLately I've been trying to fix a 30 MB JSON file that has been corrupted somehow. The file is one very long line.
Emacs was unable to open the file. (It might have eventually opened the file, but I killed the process when it took longer than I was willing to wait.)
Emacs can open large files, but it has trouble with long lines. Somewhere its data structures assume lines are not typically millions of characters long.
I used sed to add line breaks after closing brackets
sed -i 's/]/]\n/g' myfile.json
and then I was able to open the file in Emacs.
If the problem with my JSON file were simply a missing closing brace-it's not-then I could add a closing brace with
sed -i 's/$/}/' myfile.jsonUsing sed to find a job
I had a friend in college who got a job because of a sed script he wrote as an intern.
A finite element program would crash when it attempted to take too large a time step, but the program would not finish by the time the results were needed if it always took tiny time steps. So they'd let the program crash occasionally, then edit the configuration file with a smaller time step and restart the program.
They were asking engineers to work around the clock so someone could edit the configuration file and restart the finite element program if it crashed in the middle of the night. My friend wrote a shell script to automate this process, using sed to do the file editing. He eliminated the need for a night shift and got a job offer.
Related postsThe post Editing a file without an editor first appeared on John D. Cook.