Shell Notes#

UW Geospatial Data Analysis CEE467/CEWA567 David Shean

Background#

See 01_Shell_Github_prep

Also, https://www.youtube.com/watch?v=VF9-sEbqDvU

Nice cheat sheet: https://devhints.io/bash

Random tips#

A collection of common items

Batch file renaming#

Say you have 1000s of tif files, and you want to replace spaces with underscores:

for i in *tif
do 
mv “$i” $(echo $i | sed ‘s/ /_/g’)
done

#One line
for i in *tif; do mv “$i” $(echo "$i" | sed ‘s/ /_/g’); done

You can also replace any shared string (e.g., ‘initial’ to ‘final’) in the filenames by modifying the sed command:

sed 's/oldstr/newstr/'

For example, to change the extension on all .txt files to .csv:

for i in *.txt; do mv “$i” $(echo "$i" | sed ‘s/\.txt$/\.csv$/’); done

Permanently store ll alias#

echo "alias ll='ls -FGlAhp'" >> ~/.bash_profile
source ~/.bash_profile

#One line
echo "alias ll='ls -FGlAhp'" >> ~/.bash_profile && source ~/.bash_profile

Read a bit about .bash_profile to understand what’s going on here

Finding files#

find . -name '*.txt'