Difference between revisions of "Loops"
From Steak Wiki
Jump to navigationJump to search| Line 20: | Line 20: | ||
</pre> | </pre> | ||
Basically, trim off extension of i, put into name. Use both for extractions/conversion. | Basically, trim off extension of i, put into name. Use both for extractions/conversion. | ||
| + | |||
| + | ===One Liner Loop=== | ||
| + | while true; do echo "ok"; sleep 1; done | ||
===Batch Edit Photos=== | ===Batch Edit Photos=== | ||
Revision as of 13:06, 17 March 2023
This is a basic (bash) loop to operate on files.
Examples are given for 7z and video conversion.
#!/bin/bash -x
#for i in *.webm;
for i in *.7z
do name=`echo $i | cut -d'.' -f1`;
echo $name;
#for h264
# ffmpeg -i $i -s 1280x720 -c:a copy $name.mp4;
#for webm
#-map_metadata -1 is to remove metadata, at least try to remove some. (need to verify)
#ffmpeg -i $i -map_metadata -1 -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis $name.webm
7z e -o"$name" ./"$i"
done
Basically, trim off extension of i, put into name. Use both for extractions/conversion.
One Liner Loop
while true; do echo "ok"; sleep 1; done
Batch Edit Photos
#!/bin/bash for i in *.JPG do #delete exif data mogrify -strip $i #test convert size in gimp first to get ratio right convert -resize 1080x810 $i ~/Desktop/photofolder/$i done
Add date:
#!/bin/bash DATE=$(date "+%Y_%m_%d") for i in *.JPG do #delete exif data mogrify -strip $i #test convert size in gimp first to get ratio right convert -resize 1080x810 $i ~/Desktop/photofolder/$DATE$i done
Interactive Range Loop
#!/bin/bash
for i in {1..254};
do
some program that stalls goes here;
done
this will stop at the program, if it doesn't immediately complete so do this: ctrl - \
that will skip to the next range loop (i increments). note its not ctrl - c which will exit script. you can hold ctrl and depress \
What is CTRL - \? https://en.wikipedia.org/wiki/Signal_(IPC) One of the other options besides ctrl - c.
read file into command line by line
#!/bin/bash input="text_file.txt" while IFS= read -r line do wget $line done < "$input"
Obviously here, wget is the command being used. This example downloads from a text file with a list of URLs.