Skip to content

Instantly share code, notes, and snippets.

@nilnilnil
Created February 10, 2015 16:40
Show Gist options
  • Save nilnilnil/0b72ffedd754161c628c to your computer and use it in GitHub Desktop.
Save nilnilnil/0b72ffedd754161c628c to your computer and use it in GitHub Desktop.
bash helper functions
# Easily extract all compressed file types
extract () {
if [ -f "$1" ] ; then
case $1 in
*.tar.bz2) tar xvjf -- "$1" ;;
*.tar.gz) tar xvzf -- "$1" ;;
*.bz2) bunzip2 -- "$1" ;;
*.rar) unrar x -- "$1" ;;
*.gz) gunzip -- "$1" ;;
*.tar) tar xvf -- "$1" ;;
*.tbz2) tar xvjf -- "$1" ;;
*.tgz) tar xvzf -- "$1" ;;
*.zip) unzip -- "$1" ;;
*.Z) uncompress -- "$1" ;;
*.7z) 7z x -- "$1" ;;
*) echo "don't know how to extract '$1'..." ;;
esac
else
echo "'$1' is not a valid file"
fi
}
# Get weather data for Phoenixville, PA
weather() {
PLACE=${@:-Phoenixville, PA}
echo "Weather for $PLACE:"
curl -s "http://api.wunderground.com/auto/wui/geo/ForecastXML/index.xml?query=$PLACE" | perl -ne 's/&amp;deg;/°/g;/<title>([^<]+)/&&printf "%s: ",$1;/<fcttext>([^<]+)/&&print $1,"\n"';
}
# Define a word using collinsdictionary.com
define() {
curl -s "http://www.collinsdictionary.com/dictionary/english/$*" | sed -n '/class="def"/p' | awk '{gsub(/.*<span class="def">|<\/span>.*/,"");print}' | sed "s/<[^>]\+>//g";
}
# Epoch time conversion
epoch() {
TESTREG="[\d{10}]"
if [[ "$1" =~ $TESTREG ]]; then
# is epoch
date -d @$*
else
# is date
if [ $# -gt 0 ]; then
date +%s --date="$*"
else
date +%s
fi
fi
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment