grep is capable to –color highlight what it found

fgrep – fast grep – is faster but lacks ability of regular expressions and –color.

lets do some grepping exercise:

# you can either use:
find . -type f | xargs grep -s -l "STRING THAT YOU WANT";

cd /etc/grub.d;
grep -r -i --color windows; # search for term "windows" (-i case insensitive) in all files in all subfolders (-r recursive)
test/test.txt:windows
30_os-prober:   Windows*)
30_os-prober:menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class windows --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' {
...

vim artikel.txt; # create an file called artike.txt first

# and fill it with this content
Affenschwanzbaum
Affenbrotbaum
affenbrotbaum
Affenkletterbaum
Heute ist Dienstag
Das wichtigste ist Heute
Paul
Peter
Maier
Meier
Das ist mir wichtig

mkdir test; # create a new folder
cp artikel.txt ./test; # create copy in that folder

vim termine; # create an file called artike.txt first

# and fill it with this content
24.12. Weihnachten
04.01. Geburtstag
05.01. Schnee schieben

# save and quit
date +%d.%m." Ganter zuhören" >> termine; # adding one more line with the current date in the format DD.MM.

#### now the testing ####

grep --color ist artikel.txt; # search for "ist" in file "artikel.txt"
Heute ist Dienstag
Das wichtigste ist Heute
Das ist mir wichtig

grep --color M[ae]ier artikel.txt; # search for Maier but also for Meier
Maier
Meier

grep --color [A-Z] artikel.txt; # search and highlight all CAPITAL LETTERS
Affenschwanzbaum
Affenbrotbaum
Affenkletterbaum
Heute ist Dienstag
Das wichtigste ist Heute
Paul
Peter
Maier
Meier
Das ist mir wichtig

grep --color [^A-Z] artikel.txt; # search and highlight for all non-capital letters
Affenschwanzbaum
Affenbrotbaum
affenbrotbaum
Affenkletterbaum
Heute ist Dienstag
Das wichtigste ist Heute
Paul
Peter
Maier
Meier
Das ist mir wichtig

grep --color ^Heute artikel.txt; # search for all lines that start with "Heute"
Heute ist Dienstag

grep --color Heute$ artikel.txt; # search for all lines that end with "Heute"
Das wichtigste ist Heute

grep --color wichtig artikel.txt; # search for all lines that contain "wichtig"
Das wichtigste ist Heute
Das ist mir wichtig

grep --color "\<wichtig\>" artikel.txt; # search for whole word "wichtig" as whole word
Das ist mir wichtig

grep --color "Affen.*baum" artikel.txt; # search for all lines containing "Affen... arbitrary amount of chars ...baum" in file artikel.txt
Affenschwanzbaum
Affenbrotbaum
Affenkletterbaum

grep --color "Affen\(brot\|schwanz\)baum" artikel.txt; # search for all lines containing "Affen... followed by either brot or schwanz ...baum" in file artikel.txt
Affenschwanzbaum
Affenbrotbaum

grep -c --color "Affen\(brot\|schwanz\)baum" artikel.txt; # count lines containing "Affen... followed by either brot or schwanz ...baum"
2

grep -i --color "affen\(brot\|schwanz\)baum" artikel.txt; # search for lines containing "affen... or Affen followed by either brot or schwanz ...baum" case in-sensitive
Affenschwanzbaum
Affenbrotbaum
affenbrotbaum

grep -l --color "affen\(brot\|schwanz\)baum" *; # search in all files in the current directory - output the filenames that have matching content
artikel.txt

grep -r --color ei *; # search in all files in the current directory
artikel.txt:Meier
meintext.txt:sofort los schreiben.
test/artikel.txt:Meier

grep -r -l --color ei *; # search in all files in the current directory - output only the filenames that contain "ei"
artikel.txt
meintext.txt

grep -r --color baum *; # search recursively in all files and subfolders of the current directory - for the pattern "zweite"
artikel.txt:Affenschwanzbaum
artikel.txt:Affenbrotbaum
artikel.txt:affenbrotbaum
artikel.txt:Affenkletterbaum
test/artikel.txt:Affenschwanzbaum
test/artikel.txt:Affenbrotbaum
test/artikel.txt:affenbrotbaum
test/artikel.txt:Affenkletterbaum

grep -r --color -v baum *; # search recursively in all files and subfolders of the current directory - that do NOT contain the pattern "zweite"
artikel.txt:Heute ist Dienstag
artikel.txt:Das wichtigste ist Heute
artikel.txt:Paul
artikel.txt:Peter
artikel.txt:Maier
artikel.txt:Meier
artikel.txt:
artikel.txt:Das ist mir wichtig
public_html/.directory:[Desktop Entry]
public_html/.directory:Icon=folder_html
public_html/.directory:Type=Directory
scripts/md5sumBenchmark.sh:#!/bin/bash
...

grep --color "/bin/bash"$ /etc/passwd; # output all users that use /bin/bash
at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:Daemon:/sbin:/bin/bash
ftp:x:40:49:FTP account:/srv/ftp:/bin/bash
games:x:12:100:Games account:/var/games:/bin/bash
lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash
man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash
news:x:9:13:News system:/etc/news:/bin/bash
nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash
user:x:1000:100:user:/home/user:/bin/bash

grep --color -v "/bin/bash"$ /etc/passwd; # output all users that do NOT use /bin/bash (inverted pattern from last example)
ftpsecure:x:486:65534:Secure FTP User:/var/lib/empty:/bin/false
gdm:x:483:482:Gnome Display Manager daemon:/var/lib/gdm:/bin/false
mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false
messagebus:x:499:499:User for D-Bus:/var/run/dbus:/bin/false
nscd:x:496:495:User for nscd:/run/nscd:/sbin/nologin
ntp:x:74:489:NTP daemon:/var/lib/ntp:/bin/false
openslp:x:494:2:openslp daemon:/var/lib/empty:/sbin/nologin
polkitd:x:497:496:User for polkitd:/var/lib/polkit:/sbin/nologin
postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false
pulse:x:487:487:PulseAudio daemon:/var/lib/pulseaudio:/sbin/nologin
rpc:x:495:65534:user for rpcbind:/var/lib/empty:/sbin/nologin
rtkit:x:488:488:RealtimeKit:/proc:/bin/false
scard:x:484:484:Smart Card Reader:/var/run/pcscd:/usr/sbin/nologin
srvGeoClue:x:490:65534:User for GeoClue D-Bus service:/var/lib/srvGeoClue:/sbin/nologin
sshd:x:498:498:SSH daemon:/var/lib/sshd:/bin/false
statd:x:489:65534:NFS statd daemon:/var/lib/nfs:/sbin/nologin
systemd-bus-proxy:x:491:491:systemd Bus Proxy:/:/sbin/nologin
systemd-timesync:x:492:492:systemd Time Synchronization:/:/sbin/nologin
vnc:x:485:485:user for VNC:/var/lib/empty:/sbin/nologin
wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false

grep `date +%d.%m.` termine; # search inside termine for the current date (today is 26.04.2017)
26.04. Ganter zuhören

user@suse:~> grep $(date +%d.%m.) termine # same as last example, but different writing
26.04. Ganter zuhören
admin