Power Tools for Unix

A guide to useful linux commands that I have learnt over my years of scavenging through log files, trying to debug stuff. This is by no means exhaustive or a complete list. These are just some notes to my future self.


    cut -d '<DELIMITER>' -f '<field1>,<field2>..' [FILE]


  • Each line in the input/FILE is split by delimiter and treated as a 1-indexed array.
  • Fields is a comma separated list of indices.
  • Order of Fields doesn’t matter. The output is always in order they appear in the input.


    find [ROOT_DIR] -type [-f, -d] -name "REGEX PATTERN"


  • Simple search for a keyword in a DIR recursively (-r), ignoring the case (-i) and print the line number(-n)
      grep -nri "PATTERN" dir
  • Print lines in a file that do no match a “PATTERN”, ignoring case(-i)
      grep -vni "PATTERN" file
  • Either or in grep
      grep -E "(PATTERN A | PATTERN B)" file
  • Use a perl regex -P
  • Interpret patterns as fixed strings -F
  • Count -c, only matching -o


Search for a list of keywords, saved in a file called keywords.txt.

cat keywords.txt | xargs -I '{}' grep '{}' file.txt
  • -I [PATTERN] can be anything. ‘{}’ is just a convention


Replace a string in-place in a file


Guides for reference

https://www-users.york.ac.uk/~mijp1/teaching/2nd_year_Comp_Lab/guides/grep_awk_sed.pdf https://docstore.mik.ua/orelly/unix/sedawk/

Written on April 10, 2021