advertisements
_____________________________________________________________________________________________________________________
Here
is my input data file and see the output as per the requirements below.
cat
inp.txt
clark 2450
king 5000
miller 1300
smith 800
jones 2975
scott 3000
adams 1100
- Add
extra line to every line
awk
'{$0 = $0"\n"} 1' inp.txt
awk
'{$0 = $0"\n"} { print }' inp.txt
clark 2450
king 5000
miller 1300
smith 800
jones 2975
scott 3000
adams 1100
- Add
Extra line after every 2 lines. You can
change the value of 2 which is marked in red below as per your
requirement. Suppose if you wanted to add a new line after 3 you can use 3
instead of 2 in below example.
awk
'!( NR % 2)
{$0 = $0"\n"} 1' inp.txt
or
awk
'!( NR % 2)
{$0 = $0"\n"} { print }' inp.txt
clark 2450
king 5000
miller 1300
smith 800
jones 2975
scott 3000
adams 1100
- Add
heading line every n lines
awk
'!( NR % 2) {$0 = "Name
SAL\n---------------------\n"$0} 1' inp.txt
or
awk
'!( NR % 2) {$0 = "Name
SAL\n---------------------\n"$0} { print }' inp.txt
clark 2450
Name SAL
-------------------
king 5000
miller 1300
Name SAL
-------------------
smith 800
jones 2975
Name SAL
-------------------
scott 3000
adams 1100
- Add
Column titles to every lines
awk '{print "Name: "$1 "\t
Sal:" $2}' inp.txt
Name:
clark Sal:2450
Name:
king Sal:5000
Name:
miller Sal:1300
Name:
smith Sal:800
Name:
jones Sal:2975
Name:
scott Sal:3000
Name:
adams Sal:1100
You
can achieve these goals using a lengthy shell script as below.
#!/bin/sh
cntr=0
while
read line
do
((chk=cntr%3))
if [ "$chk" -eq 0 ]; then
echo -e "\n$line"
else
echo "$line"
fi
((cntr=cntr+1))
done
< inp.txt
_____________________________________________________________________________________________________________________
0 comments:
Post a Comment