===== Linux Commands : file - search / replace ===== For the following cmds, the //test.file// contains: 1 cat barn food 2 dog house kibble 3 fish water food 4 cow pasture grass ==== grep ==== "searches the named input FILE for lines containing a match to PATTERN" * Good for searching a file for a certain pattern user@tim:~$ grep --help Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. // snip // user@tim:~$ grep cat test.file 1 cat barn food user@tim:~$ grep food test.file 1 cat barn food 3 fish water food ==== awk ==== "pattern scanning and processing language" * good for printing columnar data, note that the field separator (between the columns) can be anything (space, tab, colon, etc) and can be specified with -F user@tim:~$ awk '{print $2}' test.file cat dog fish cow ==== sed ==== "stream editor for filtering and transforming text" user@tim:~$ sed s/cat/lion/ test.file 1 lion barn food 2 dog house kibble 3 fish water food 4 cow pasture grass (note that the input file //test.file// did NOT change) user@tim:~$ cat test.file 1 cat barn food 2 dog house kibble 3 fish water food 4 cow pasture grass user@tim:~$ sed s/cat/lion/ test.file > new.file (save into //new.file//) user@tim:~$ cat new.file 1 lion barn food 2 dog house kibble 3 fish water food 4 cow pasture grass user@tim:~$ cat test.file 1 cat barn food 2 dog house kibble 3 fish water food 4 cow pasture grass ==== diff ==== "Compare files" user@tim:~$ diff --help Usage: diff [OPTION]... FILES Compare FILES line by line. // snip // user@tim:~$ diff test.file new.file 1c1 < 1 cat barn food --- > 1 lion barn food