After my first day of Adevnt of code 2020 adventures, I am left with multiple files just for one day.
In a bid to organize things well, I made up a folder day-1
so I may move files inside it. Now, it doesn’t make sense to qualify the files themselves with this prefix. I wanted to remove the suffix from all the files at once.
Here’s how I did it without leaving my shell:
shashank@shashank-HP-ENVY-Notebook:~/Projects/personal/programming-challenges/advent-of-code/2020/day-1$ ls
day-1-part-1-attempt-1.py day-1-part-1-attempt-2.py day-1-part-1-attempt-3.py day-1-part-2-attempt-1.py day-1-part-2-attempt-2.py input-1.txt
shashank@shashank-HP-ENVY-Notebook:~/Projects/personal/programming-challenges/advent-of-code/2020/day-1$ for file in *; do echo $file; done
day-1-part-1-attempt-1.py
day-1-part-1-attempt-2.py
day-1-part-1-attempt-3.py
day-1-part-2-attempt-1.py
day-1-part-2-attempt-2.py
input-1.txt
shashank@shashank-HP-ENVY-Notebook:~/Projects/personal/programming-challenges/advent-of-code/2020/day-1$ for file in *
> do
> mv $file ${file/day-1-/}
> done
mv: 'input-1.txt' and 'input-1.txt' are the same file
shashank@shashank-HP-ENVY-Notebook:~/Projects/personal/programming-challenges/advent-of-code/2020/day-1$ ls
input-1.txt part-1-attempt-1.py part-1-attempt-2.py part-1-attempt-3.py part-2-attempt-1.py part-2-attempt-2.py
shashank@shashank-HP-ENVY-Notebook:~/Projects/personal/programming-challenges/advent-of-code/2020/day-1$
Here’s another way of doing it. Helps further if you have to find and replace a particular pattern:
shashank@shashank-HP-ENVY-Notebook:~/Projects/personal/JSON-java/src/test/resources$ for f in *; do echo $f; done;
Issue537.json
Issue537.xml
jsonpointer-testdoc.json
JSONUtilsTestIn1.json
JSONUtilsTestIn2_1.json
JSONUtilsTestIn2_2.json
JSONUtilsTestIn2_3.json
JSONUtilsTestOut1.json
JSONUtilsTestOut2_1_1.json
JSONUtilsTestOut2_1_2.json
JSONUtilsTestOut2_1_3.json
JSONUtilsTestOut2_2_1.json
JSONUtilsTestOut2_2_2.json
JSONUtilsTestOut2_3_1.json
JSONUtilsTestOut2_3_2.json
JSONUtilsTestOut2.json
JSONUtilsTestOut3.json
shashank@shashank-HP-ENVY-Notebook:~/Projects/personal/JSON-java/src/test/resources$ for f in *
> do
> mv $f "$(echo $f | sed 's/JSONUtils/JSONObjWithArrays/')"
> done
mv: 'Issue537.json' and 'Issue537.json' are the same file
mv: 'Issue537.xml' and 'Issue537.xml' are the same file
mv: 'jsonpointer-testdoc.json' and 'jsonpointer-testdoc.json' are the same file
shashank@shashank-HP-ENVY-Notebook:~/Projects/personal/JSON-java/src/test/resources$ ls
Issue537.json JSONObjWithArraysTestIn2_1.json JSONObjWithArraysTestOut1.json JSONObjWithArraysTestOut2_1_3.json JSONObjWithArraysTestOut2_3_1.json JSONObjWithArraysTestOut3.json
Issue537.xml JSONObjWithArraysTestIn2_2.json JSONObjWithArraysTestOut2_1_1.json JSONObjWithArraysTestOut2_2_1.json JSONObjWithArraysTestOut2_3_2.json jsonpointer-testdoc.json
JSONObjWithArraysTestIn1.json JSONObjWithArraysTestIn2_3.json JSONObjWithArraysTestOut2_1_2.json JSONObjWithArraysTestOut2_2_2.json JSONObjWithArraysTestOut2.json
shashank@shashank-HP-ENVY-Notebook:~/Projects/personal/JSON-java/src/test/resources$