Sponsored Content
Top Forums Shell Programming and Scripting Read file lines and pass line values as arguments. Post 303007412 by sadique.manzar on Thursday 16th of November 2017 08:03:56 AM
Old 11-16-2017
Read file lines and pass line values as arguments.

Dears,

Need help to implement below requirement


A file (detail.txt)contain :
Code:
1st column: Stream					
2nd column: PathAddress			    
3rd column: Counterlimit
4th column: TransactionDateColumn	
5th column: DateType				
6th column: SleepValue				
7th column: Status

Need to write a script where it read each line of the file.
Check the status column (0 Not active, 1 active)
then pass as following column values as an argument.
stream
pathaddress
counterlimit on below script.

Code:
#!/bin/sh
DATE=`date +"%Y-%m-%d %H:%M:%S"`
LATENCY ()
{
stream=
path=
counter=0
while [ $counter -le $counterlimit ]
do
	for  files in `ls $path | grep -v .temp | head -3`
	do
		if [[ -f $files ]] && [[ -s $files ]];
		then 
			if ## 4th column of the detail.txt having value 1
			then 
				TT_FIRST=`awk -F ',' 'NR==1{print $1}' $files`
				TT_LAST=`awk -F ',' 'END{print $1}' $files`
				FILENAME=`ls $files | cut -d '/' -f6`
				TIMESTAMP=$( date -r $files +'%s')
				FILE_CR_TIME=$( date +'%Y-%m-%d %H:%M:%S' -r $files)
				TRANS_TIME_FIRST=$(date -d @$(printf '%.0f\n' $TT_FIRST) +'%s')
				TRANS_TIME_LAST=$(date -d @$(printf '%.0f\n' $TT_LAST) +'%s')
				RECORD_TIME_FIRST=$(date -d @$(printf '%.0f\n' $TT_FIRST) +"%Y-%m-%d %H:%M:%S")
				RECORD_TIME_LAST=$(date -d @$(printf '%.0f\n' $TT_LAST) +"%Y-%m-%d %H:%M:%S")
				TIME_LAG_FIRST=$(expr $TIMESTAMP - $TRANS_TIME_FIRST)
				TIME_LAG_LAST=$(expr $TIMESTAMP - $TRANS_TIME_LAST)
				DELAY_PROCESS=$((`expr $(date -u +"%s") - $TIMESTAMP`))
				TRANS_DIFFTIME=$(expr $TRANS_TIME_LAST - $TRANS_TIME_FIRST)
				counter=$counterlimit
			else
			if   ## 4th column of the detail.txt having value 4
			then
				TTHEX_FIRST=`awk -F ',' 'NR==1{print $4}' $files`
				TTHEX_LAST=`awk -F ',' 'END{print $4}' $files`
				TIMESTAMP=$( date -r $files +'%s')
				FILENAME=`ls $files | cut -d '/' -f5`
				FILE_CR_TIME=$( date +'%Y-%m-%d %H:%M:%S' -r $files)
				TRANS_TIME_FIRST=$(date -d @$(expr `printf "%d" 0x$TTHEX_FIRST` / 1000) +'%s')
				TRANS_TIME_LAST=$(date -d @$(expr `printf "%d" 0x$TTHEX_LAST` / 1000) +'%s')
				RECORD_TIME_FIRST=$(date -d  @$(expr `printf "%d" 0x$TTHEX_FIRST` / 1000) +"%Y-%m-%d %H:%M:%S")
				RECORD_TIME_LAST=$(date -d  @$(expr `printf "%d" 0x$TTHEX_FIRST` / 1000) +"%Y-%m-%d %H:%M:%S")
				TIME_LAG_FIRST=$(expr $TIMESTAMP - $TRANS_TIME_FIRST)
				TIME_LAG_LAST=$(expr $TIMESTAMP - $TRANS_TIME_LAST)
				DELAY_PROCESS=$((`expr $(date -u +"%s") - $TIMESTAMP`))
				TRANS_DIFFTIME=$(expr $TRANS_TIME_LAST - $TRANS_TIME_FIRST)
				counter=100
			else
				echo "file doesn't exist" >/dev/null
			fi
			fi
		if [ "${FILENAME}" != "" ];
		then
			echo "${DATE} ${stream} ${FILENAME} ${FILE_CR_TIME} ${RECORD_TIME_FIRST} ${TIME_LAG_FIRST} ${RECORD_TIME_LAST} ${TIME_LAG_LAST} ${DELAY_PROCESS} ${TRANS_DIFFTIME}" | hdfs dfs -appendToFile - /AUDIT/FINAL.csv
		else
			echo "Filename is empty" >/dev/null 
		fi 
	done
((counter++))
sleep $sleepValue
done
}


detail.txt contains:
Code:
S1	/streamslz/LZ/S1	100	1		1	10	1
IUCS	/streamslz/LZ/AnritsuIUCS	100	4	2	5 1
IUPS	/streamslz/LZ/IUPS		100	1	1	5	1



Regards,
sadique

Last edited by jim mcnamara; 11-16-2017 at 09:33 AM.. Reason: quote tags changed to CODE tags
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

read a file as input and pass each line to another script

Hi, I am trying to write a ftp script which will read a file for filenames and ftp those files to another server. Here's my ftp script, but it's scanning the current directory for file names. My question is how can I pass multiple files (these files will have the name of data files that need to... (0 Replies)
Discussion started by: sajjad02
0 Replies

2. Shell Programming and Scripting

how do I pass or read values from file ?

Hi one & All , My Need is to Create 64 Partition and create File System in Linux. I have the Script ... for((a=0;a<=63;a++)) do fdisk /dev/cciss/c0d$a done for((a=0;a<=63;a++)) do mkfs.ext2 /dec/cciss/'c0d'$a'p1' done the moment I run the Script I get the Prompt ... Command... (1 Reply)
Discussion started by: nix-kid
1 Replies

3. Shell Programming and Scripting

Pass command line arguments to awk

I am trying to pass max as a sommand line argument when I call awk. Made the modification in the BEGIN but it is not working I'm getting an error as below: awk: txsrx.awk:82: (FILENAME=jcd.tx FNR=4161) fatal: cannot open file `40' for reading (No such file or directory) Somehow it... (2 Replies)
Discussion started by: kristinu
2 Replies

4. Shell Programming and Scripting

bash: read file line by line (lines have '\0') - not full line has read???

I am using the while-loop to read a file. The file has lines with null-terminated strings (words, actually.) What I have by that reading - just a first word up to '\0'! I need to have whole string up to 'new line' - (LF, 10#10, 16#A) What I am doing wrong? #make file 'grb' with... (6 Replies)
Discussion started by: alex_5161
6 Replies

5. Shell Programming and Scripting

How can i pass 2 command line arguments with a range between them

Hi, I am writting a script. i am not sure what i am trying to do is possible or not. thats why asking the best of the best. the script i want to write will recieve as input parameters 2 different options. as in MODE 1 -- start_date / end_date (2 dates has 2 go at a time MODE 2... (2 Replies)
Discussion started by: dazdseg
2 Replies

6. Shell Programming and Scripting

Help with script to read lines from file and count values

Hi, I need some help with a script I'm trying to write. I have a log file containing references to a number of different webservices. I wish to write a script that will list the webservices with a count as to how many times they appear in the log. An example of the log file content: ... (2 Replies)
Discussion started by: gman2010
2 Replies

7. Programming

How to pass the command line arguments to the shell script in c language?

hi, I am new in the shell script, and c programming with linux. I am looking to pass the arguments in c program that should be executed by the shell script. e.g. #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv) { int i; for (i=1;i<argc; i++) { ... (2 Replies)
Discussion started by: sharlin
2 Replies

8. Shell Programming and Scripting

Awk: Comparing arguments with in line values of file and printing the result

I need to develop a script where I will take two date arguments as parameter date1 and date2 which will in format YYYYMM. Below is the input file say sample.txt. sample.txt will have certain blocks starting with P1. Each block will have a value 118,1:TIMESTAMP. I need to compare the... (7 Replies)
Discussion started by: garvit184
7 Replies

9. Shell Programming and Scripting

Need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line...

Hello, I need a program that read a file line by line and prints out lines 1, 2 & 3 after an empty line... An example of entries in the file would be: SRVXPAPI001 ERRO JUN24 07:28:34 1775 REASON= 0000, PROCID= #E506 #1065: TPCIPPR, INDEX= 003F ... (8 Replies)
Discussion started by: Ferocci
8 Replies

10. Shell Programming and Scripting

How to pass command line arguments to awk program?

#!/bin/awk -f BEGIN { FS=":"; } { if ( $7 == "" ) { print $1 ": no password!"; } } I want to execute this program for a particular user to check for his password from the file /etc/passwd (as the input file) and the user details to be given... (1 Reply)
Discussion started by: sri.phani
1 Replies
All times are GMT -4. The time now is 04:54 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy