July #TMIL - Some command line favorites
Getting close to the end of the year.. will I make all twelve TMIL posts? Let's see how far we can get as things might start to take on a "best of 2014" flavor. Here are some command line favorites I've noted and usually forget, mostly around searching:
List the first ten items in a directory
Show only the human-readable sizes of all xml files in a directory
Sum the sizes of all zip files in a directory (notice there's no -h flag to ls, this way you sum only bytes, then later convert to kilobytes then to megabytes)
Find all files recursively, count them
Find files in app/views with case-insensitive 'important' somewhere in the name
Find xml files that don't contain 'beer' in the current directory
Find files in config/locales that have been modified in the last day
Find the word 'beer' in files within the app/models directory and show the match in color
Find directories starting with the path app/views/external_*
Show only the matching parts of a line (-o) from a regular expression search for ten consecutive numbers in xml files in the currently directory (add -h to hide the matching filenames)
List the first ten items in a directory
ls | head -10
Show only the human-readable sizes of all xml files in a directory
ls -lSah *.xml | awk '{print$5}'
Sum the sizes of all zip files in a directory (notice there's no -h flag to ls, this way you sum only bytes, then later convert to kilobytes then to megabytes)
ls -lSa *.zip | awk '{ total += $5}; END {print total/1024/1024 "Megabytes"}'
Find all files recursively, count them
find . -type f | wc -l
Find files in app/views with case-insensitive 'important' somewhere in the name
find app/views -iname "*important*" -type f
Find visible or hidden files in the current directory with case-insensitive 'important' anywhere in the title and move them to an existing directory named 'temp'find . -iname '*important*' -type f -maxdepth 1 | while read FILE; do mv $FILE ./temp; done
Find xml files that don't contain 'beer' in the current directory
grep -v 'beer' *.xml
Find files in config/locales that have been modified in the last day
find config/locales -mtime -1
Find the word 'beer' in files within the app/models directory and show the match in color
grep --color -Rin beer app/models
Find directories starting with the path app/views/external_*
find app/views/external_* -type d
Show only the matching parts of a line (-o) from a regular expression search for ten consecutive numbers in xml files in the currently directory (add -h to hide the matching filenames)
egrep -o '[0-9]{10}' *.xml