diff --git a/sheets/awk b/sheets/awk index 67f6a07..74b237a 100644 --- a/sheets/awk +++ b/sheets/awk @@ -15,3 +15,12 @@ awk -v RS='' '/42B/' file # display only first column from multi-column text echo "first-column second-column third-column" | awk '{print $1}' + +# Use awk solo; without the need for something via STDIN. +awk BEGIN'{printf("Example text.\n")}' + +# Accessing environment variables from within awk. +awk 'BEGIN{print ENVIRON["LS_COLORS"]}' + +# One method to count the number of lines; in this case, read from STDIN. +free | awk '{i++} END{print i}' diff --git a/sheets/find b/sheets/find index 1723835..abe454d 100644 --- a/sheets/find +++ b/sheets/find @@ -1,54 +1,58 @@ -# To find files by case-insensitive extension (ex: .jpg, .JPG, .jpG): +# Find files by case-insensitive extension (ex: .jpg, .JPG, .jpG): find . -iname '*.jpg' -# To find directories: +# Find directories: find . -type d -# To find files: +# Find files: find . -type f -# To find files by octal permission: +# Find files by octal permission: find . -type f -perm 777 -# To find files with setuid bit set: +# Find files with setuid bit set: find . -xdev \( -perm -4000 \) -type f -print0 | xargs -0 ls -l # To find files with extension '.txt' and remove them: find ./path/ -name '*.txt' -exec rm '{}' \; -# To find files with extension '.txt' and look for a string into them: +# Find files with extension '.txt' and look for a string into them: find ./path/ -name '*.txt' | xargs grep 'string' -# To find files with size bigger than 5 Mb and sort them by size: +# Find files with size bigger than 5 Mb and sort them by size: find . -size +5M -type f -print0 | xargs -0 ls -Ssh | sort -z -# To find files bigger thank 2 MB and list them: +# Find files bigger thank 2 MB and list them: find . -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' -# To find files modified more than 7 days ago and list file information +# Find files modified more than 7 days ago and list file information find . -type f -mtime +7d -ls -# To find symlinks owned by a user and list file information +# Find symlinks owned by a user and list file information find . -type l --user=username -ls -# To search for and delete empty directories +# Search for and delete empty directories find . -type d -empty -exec rmdir {} \; -# To search for directories named build at a max depth of 2 directories +# Search for directories named build at a max depth of 2 directories find . -maxdepth 2 -name build -type d -# To search all files who are not in .git directory +# Search all files who are not in .git directory find . ! -iwholename '*.git*' -type f -# To find all files that have the same node (hard link) as MY_FILE_HERE +# Find all files that have the same node (hard link) as MY_FILE_HERE find . -type f -samefile MY_FILE_HERE 2>/dev/null -# To find all files in the current directory and modify their permissions +# Find all files in the current directory and modify their permissions find . -type f -exec chmod 644 {} \; -# To find files with extension '.txt.' and edit all of them with vim +# Find files with extension '.txt.' and edit all of them with vim # vim is started only once for all files find . -iname '*.txt' -exec vim {} \+ -# To find all files with extension '.png' and rename them by changing extension to '.jpg' (base name is preserved) +# Find all files with extension '.png' and rename them by changing extension to +# '.jpg' (base name is preserved) find . -type f -iname '*.png' -exec bash -c 'mv "$0" "${0%.*}.jpg"' {} \; + +# Use logic and grouping to delete extension-specific files. +find \( -iname "*.jpg" -or -iname "*.sfv" -or -iname "*.xspf" \) -type f -delete diff --git a/sheets/stat b/sheets/stat index 13d2dac..2d1fc94 100644 --- a/sheets/stat +++ b/sheets/stat @@ -1,2 +1,5 @@ # display numerical values for file permissions stat -c '%a %n' * + +# Display only the octal permissions for the given directory. Great for tests. +stat --format='%a' /boot