Sed Command Examples

Insert a newline in front of pattern

Example your text in the file is as below

Updated number of BobUpdated number of ChrisUpdated number of Peter

If you want format the text as below
Updated number of Bob
Updated number of Chris
Updated number of Peter


Need to use the command as below.

 [root@server ~]# sed 's/Update/\n&/g'  test.txt

Sum of the Values of Column Using AWK.

For example, I have a file called apples.txt with the following content and I want to total them up.

Apples in Box 1 = 100
Apples in Box 2 = 564
Apples in Box 3 = 214
Apples in Box 4 = 124
Apples in Box 5 = 785
Apples in Box 6 = 398
Apples in Box 7 = 125
Apples in Box 8 = 753
Apples in Box 9 = 357
Apples in Box 10 = 951

So just cat the file and use AWK command awk ‘{SUM+=$6}END{print SUM}’ to total them up

make sure to use the right column in awk command, like in our example I want to SUM the column 6 so I used ‘{SUM+=$6}

[root@server ~]# cat  example.txt | awk '{SUM+=$6}END{print SUM}'
4371

Eval Command in Linux

Eval is built in unix command – it’s used to execute arguments as shell commands. It’s useful when you have command stored in variable and you want to execute it.

[root@server Files]# mycommand="ls -ltr"

[root@server Files]# echo $mycommand
ls -ltr

[root@server Files]# eval $mycommand
total 0
-rw-r--r-- 1 root root 0 Nov  5 07:40 file1.txt
-rw-r--r-- 1 root root 0 Nov  5 07:40 file3.txt
-rw-r--r-- 1 root root 0 Nov  5 07:40 file2.txt
[root@server Files]#

Look at the example above, I have stored the command ls – ltr in the variable mycommand so when I do echo it’s just prints what in the variable. But when I do eval followed with the variable – it will actually execute the command.

Eval is powerful command but it’s Evil – it has security issues as well.
You can find the details here

Exit Status in Linux.

What is exit status in the linux?

Whenever you fire a shell command it returns a status to check if that command was successful or not – exit status can be very useful in scripts to make you scripts stable.

Example:-

In the example below, I ran uptime command and it was successful – so when I checked the exit status using echo $? it showed 0.

[root@server ~]# uptime
 05:15:27 up 50 days, 16:53,  1 user,  load average: 0.08, 0.03, 0.08

[root@server ~]# echo $?
0
[root@server ~]#

Now let’s see what happens when command is not successful.

So in the example below, I typed incorrect command and exit status was other than 0 – which indicates error.

[root@server ~]# uptimee
-bash: uptimee: command not found

[root@server ~]# echo $?
127
[root@server ~]#

Practical usage in shell scripting.

#!/bin/bash
cd $1 > /dev/null 2>&1

if [ $? != 0 ]
then
        echo "Directory Not Found" ; exit
fi

echo "Great!"

So, above script terminates if cd command is not successful.
If it’s successful it will execute further code.

[root@server ~]# ./exitstatus.sh /tmp
Great!

[root@server ~]# ./exitstatus.sh /tmpp
Directory Not Found
[root@server ~]#