dfn48
asked on
Using gawk to read and manipulate multiple texts from a file
OS is AIX
The first part of the program check if the input of a particular date and group name exist in a text file. The input values need to match on that entire record in the text file. This process is similar to SQL where clause statement.
The second part of the program display an error message and exit the loop if there isn't a match or else continue if there is a match. The date format needs to change from mm/dd/yyyy to mm/dd/yy in the output of results. The input variable n limit the number of records that are displayed.
I'm getting an error message when I run my code. Error message: too many errors to read.
a) Input variables in the code are
group=hasasvmi
date1=09/29/2016
n=1
b) The following is the data in the text file
Example 1: data in k_2016.09.29.txt :
c) The following is an example of the results that I want to display:
Here is my code:
The first part of the program check if the input of a particular date and group name exist in a text file. The input values need to match on that entire record in the text file. This process is similar to SQL where clause statement.
The second part of the program display an error message and exit the loop if there isn't a match or else continue if there is a match. The date format needs to change from mm/dd/yyyy to mm/dd/yy in the output of results. The input variable n limit the number of records that are displayed.
I'm getting an error message when I run my code. Error message: too many errors to read.
a) Input variables in the code are
group=hasasvmi
date1=09/29/2016
n=1
b) The following is the data in the text file
Example 1: data in k_2016.09.29.txt :
/dev/sasdwk/hasasvmi 128 1 127 0% /sasdwk/hasasvmi 2016.09.29_11.30.27
c) The following is an example of the results that I want to display:
Filesystem GBks Free Used used% Mt Date Time
/dev/sasdwk/hasasvmi 128 1 127 0% /sasdwk/hasasvmi 09/29/16 11:30
Here is my code:
group=hasasvmi
date1=09/29/2016
n=1
|{
read "$group"
read "$date1"
read "$n"
DISKINFO=tail $n" k_%Y.%M.%D.txt
while IFS='' read $line
do
group=hasasvmi
date1=09/29/2016
f1='grep ^"f1" $line | awk '{print $1}''
f2='grep ^"f2" $line | awk '{print $2}''
f3='grep ^"f3" $line | awk '{print $3}''
f4='grep ^"f4" $line | awk '{print $4}''
f5='grep ^"f5" $line | awk '{print $5}''
f6='grep ^"f5" $line | awk '{print $6}''
If grp= echo( $grep "$group" "$line") &&
f7= echo ('grep " $date1" | date2= (date +%m/%d/%Y | gawk "$line" 'BEGIN {FS=". _" OFS="/"} {print $7}'')
&& f8= (date +"%H:%M" | gawk "line" 'BEGIN {FS="_ ." OFS="."} {print $7}'')
Then
continue
printf '\tFileSystem%s\tGBks%d%s\t Free%d%s\tused%d %s\tused%%s\ tMt %s\ tDate%s\ tTime%s\n'
"$f1" "$f2" "$f3" "$f4" "$f5" "$f6" "$f7"
else
echo '$grp ' doesn't exist (exit)|| echo '$f7' doesn't match the date on file for'$grp' (exit)
fi
done <"$DISKINFO"
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.