Unix and AWK Guide Revised
Unix and AWK Guide Revised
Unix is a powerful command-line operating system used for file management, process
control, text processing, and system management.
Below are essential commands with examples:
ls
Lists files and directories.
Example: ls -l
cd
Changes directory.
Example: cd /home/user
mkdir
Creates a new directory.
Example: mkdir mydir
rm
Removes files or directories.
Example: rm file.txt
touch
Creates an empty file.
Example: touch newfile.txt
cat
Displays file contents.
Example: cat file.txt
nano/vi
Edits files using a text editor.
Example: nano notes.txt
chmod
Changes permissions.
Example: chmod 755 script.sh
chown
Changes file owner.
Example: chown user:group file.txt
ps
Displays active processes.
Example: ps aux
top
Displays dynamic real-time processes.
Example: top
kill
Kills a process.
Example: kill 1234
grep
Searches for a pattern.
Example: grep 'error' logfile.txt
find
Finds files.
Example: find . -name '*.txt'
sort
Sorts lines.
Example: sort names.txt
uniq
Filters duplicate lines.
Example: sort file.txt | uniq
cut
Cuts fields.
Example: cut -d',' -f1 file.csv
head
Displays first lines.
Example: head -n 5 file.txt
tail
Displays last lines.
Example: tail -n 5 file.txt
echo
Prints text to terminal.
Example: echo 'Hello World'
>:
Redirects output to a file.
Example: echo Hello > file.txt
|
Pipes output to another command.
Example: ls | grep '.txt'
Explanation:
Skips header (NR > 1) and prints the 2nd field (Name).
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
Prints names and sorts them alphabetically using sort.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
Selects only Sales department employees and sorts names in reverse order.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Q4: Salary > 60000, print Name and Salary
Command:
awk -F@ 'NR > 1 && $5 > 60000 { print $2 "@" $5 }' employees.txt
Explanation:
Prints name and salary if salary is greater than 60000.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
Counts number of HR employees.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
Adds up salaries and prints total.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
Checks if age > 40 and prints name and age.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Q8: Average salary in Marketing
Command:
awk -F@ 'NR > 1 && $4=="Marketing" { sum+=$5; count++ } END { print sum/count }'
employees.txt
Explanation:
Computes average salary for Marketing department.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
Tracks minimum salary and corresponding name.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
Calculates 10% raise and prints updated salary.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
Sorts whole lines based on 5th field (Salary).
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
Prints 3 employee lines after skipping header.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
The '^' symbol matches beginning of string; selects names starting with 'S'.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
The '$' symbol matches end of string; selects names ending with 'a'.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
Matches names containing the letter 'y'.
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.
Explanation:
Matches names that contain at least one vowel (a, e, i, o, u).
Example:
Suppose a line is: 1@Sanjay@25@Sales@50000 → $2 is 'Sanjay', $4 is 'Sales', $5 is '50000'
etc.