DAY 3 : Actually, this combines what we've done in about two or three labs.
wc
wc <filename> : Word Count ( lines, words, characters)
Use following for specific counts,
-l : only lines
-w : only words
-c : only characters
-wl : words & lines
-wc : words * characters
-lc : lines and characters
$ cat > NewFile2
Tommy Boy v/s Green Lantern
$ wc Newfile2 <-- Subtle Reminder how file names are Case Sensitive.
wc: cannot open Newfile2: No such file or directory (error 2)
$ wc NewFile2
1 5 28 NewFile2
$ wc -wl NewFile2
1 5 NewFile2
$ cat < PUMA2
Jump & move it.
Jump & move it..
Jump & move it...
Yo!
$ wc PUMA2
4 13 55 PUMA2
$ wc -w PUMA2
13 PUMA2
$ wc -c PUMA2
55 PUMA2
$ wc -l PUMA2
4 PUMA2
sort
sort <filename> : Sorts files taking each line as separate entity
Use following for specific results,
sort -r <filename> : reverse order (descending)
sort -o<TOfilename> <FROMfilename> : save sorted file
$ cat > JLA <-- Creating a file JLA and filling it with their names.
Clark Kent
Bruce Wayne
Diana
Barry Allen
Hal Jordan
Arthur Curry
J'onn J'onzz
$ sort JLA <-- Default Order.
Arthur Curry
Barry Allen
Bruce Wayne
Clark Kent
Diana
Hal Jordan
J'onn J'onzz
$ sort -r JLA <-- Reverse Order
J'onn J'onzz
Hal Jordan
Diana
Clark Kent
Bruce Wayne
Barry Allen
Arthur Curry
$ cat > JLA2
Superman
Batman
Wonder Woman
Flash
Green Lantern
Aquaman
Martian Manhunter
$ sort JLA2 <-- Note the file JLA2 appears to be sorted
Aquaman
Batman
Flash
Green Lantern
Martian Manhunter
Superman
Wonder Woman
$ cat < JLA2 <-- But the sorted file is merely shown, not saved.
Superman
Batman
Wonder Woman
Flash
Green Lantern
Aquaman
Martian Manhunter
$ sort -oJLA_SORTED JLA <-- Command done.
$ cat<JLA <-- Original file Not Sorted.
Clark Kent
Bruce Wayne
Diana
Barry Allen
Hal Jordan
Arthur Curry
J'onn J'onzz
$ cat < JLA_SORTED <-- New file Sorted.
Arthur Curry
Barry Allen
Bruce Wayne
Clark Kent
Diana
Hal Jordan
J'onn J'onzz
Now, using multiple files:
sort <filename> <filename2> : Combines both and sorts it all.
sort -o<TOfilename> <FROMfilename1> <FROMfilename2> : Saves the combined and sorted.
Also, use:
-m : treats each file as an entity instead of the lines within it
-u : avoids repetition when common entities from 2 files repeat
$ sort JLA JLA2
Aquaman
Arthur Curry
Barry Allen
Batman
Bruce Wayne
Clark Kent
Diana
Flash
Green Lantern
Hal Jordan
J'onn J'onzz
Martian Manhunter
Superman
Wonder Woman
$ sort -oJLA_together JLA JLA2
$ cat < JLA_together
Aquaman
Arthur Curry
Barry Allen
Batman
Bruce Wayne
Clark Kent
Diana
Flash
Green Lantern
Hal Jordan
J'onn J'onzz
Martian Manhunter
Superman
Wonder Woman
$ cat > FRAGMENT1
John : Clone 3
$ cat > FRAGMENT2
John : Clone 1
$ cat > FRAGMENT3
John : Clone 4
( Currently Missing In Action )
$ cat > FRAGMENT4
John : Clone 5
( Best So Far )
$ sort FRAGMENT1 FRAGMENT2 FRAGMENT3 FRAGMENT4
( Best So Far ) <-- Notice how inner contents of file were sorted too
( Currently Missing In Action )
John : Clone 1
John : Clone 3
John : Clone 4
John : Clone 5
$ sort -m FRAGMENT1 FRAGMENT2 FRAGMENT3 FRAGMENT4
John : Clone 1 <-- Using -m each file treated as separate entities.
John : Clone 3
John : Clone 4
( Currently Missing In Action )
John : Clone 5
( Best So Far )
$ cat > DPS
Vayne
Heimer
Warwick
Master Yi
$ cat > Range
Vayne
Ashe
Heimer
Brand
$ sort DPS Range
Ashe
Brand
Heimer <-- Common entities repeat
Heimer
Master Yi
Vayne
Vayne
Warwick
$ sort -u DPS Range <-- -u avoids repetition.
Ashe
Brand
Heimer
Master Yi
Vayne
Warwick
head
head -n <filename> : displays the first n lines of a file
tail
tail -n <filename> : displays the last n lines of a file
$ cat < PUMA2
Jump & move it.
Jump & move it..
Jump & move it...
Yo!
$ head -10 PUMA2
Jump & move it.
Jump & move it..
Jump & move it...
Yo!
$ head -1 PUMA2
Jump & move it.
$ head -2 PUMA2
Jump & move it.
Jump & move it..
$ tail -1 PUMA2
Yo!
$ tail -2 PUMA2
Jump & move it...
Yo!