Below script reads a file line by line
Each line is a string delimited by underscore ( '_' ).Script splits each string by this delimiter and extracts the last index,which is the date part of the string
and produces a new string
if the lines of status.txt are
impression_1_10142011
impression_1_10152011
then output of the below script is
impression_2_10142011
impression_2_1015201
-----------------------------------------------------------
#!/bin/sh
filename="status.txt"
while read line
do
table=$line
splits=(`echo "$table" | tr '_' ' '`)
tabletmp=`echo "impression_2_""${splits[2]}"`
echo "table tmp=$tabletmp"
done < ${filename}
echo "over"
-------------------------------------------------------------
Other ways of splitting a string by delimiters
a.
>> echo "nitesh:kumar:jag:gita" | awk -F: '{print $3}'
>> jag
b.
>> echo "nitesh:kumar:jag:gita" | cut -d: -f4
>> gita
c.
>> echo "nitesh" | awk '{print substr($0,2)}'
>> itesh
d.
>> echo "nitesh" | cut -c2
>> i
e.
>> echo "nitesh" | cut -c2-
>> itesh
f.
>> echo "nitesh" | cut -c2,4
>> ie
g.
>> echo "nitesh" | cut -c2-4
>> ite
h.
>> df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 10321208 2687988 7108932 28% /
/dev/sdb 423135208 203084 401438084 1% /mnt
none 8963788 0 8963788 0% /dev/shm
/dev/sdg 1032123136 953849496 25844840 98% /data
then
>> df | grep "\ /data" | awk '{print $5}'
>> 98%
i. TO get process id of a process 'crond'
>> ps -ef | grep "crond" | grep -v grep | awk '{print $2}'
>> 988
No comments:
Post a Comment