Grep searches input files for lines containing a match to a given pattern list.
Match all words starting with Ind
cat /usr/share/dict/words | grep "Ind.*"
Output
Ind
Indanthrene
Indecidua
Independista
India
Match all words ending with age
cat /usr/share/dict/words | grep ".*age$"
Output
wreathage
wreckage
xylophage
yardage
yokeage
Match all pattern which starts with q and doesn’t follow by u
cat /usr/share/dict/words | grep "q." | grep -v "qu"
Output
Iraqi
Iraqian
Louiqa
miqra
qasida
qere
Get information about all ethernet interfaces using -A (after) flag
ifconfig | grep "en[0-9]" -A 4
Output
en0: flags=xxxx<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu xxxx ether xx:bf:xb:ex:xd:xx inetx fexx::xcfx:cxbx:xxbx:bx%enx prefixlen xx secured scopeid xxx inet xxx.xx.x.xxx netmask xxffffffxx broadcast xxx.xx.x.xxx ndx options=xxx<PERFORMNUD,DAD> en1: flags=xxx<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu xxxx options=xx<TSOx,TSOx> ether xa:xx:xd:xx:xc:bx media: autoselect <full-duplex> status: inactive
Recursively search for a keyword and also get filename using -H (filename), -R (recursive), -i (case-insensitive) flag
grep -HRi "json" *
Output
web/problems/bookmark.js: dataType: 'json', web/tag-search.js: dataType: 'json',