Reading multiple lines in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Reading multiple lines in a file
# 1  
Old 05-09-2016
Hammer & Screwdriver Reading multiple lines in a file

Hello, I am new in shell scripting. I need help regarding following.

I have 4 files generated by backups daily. I have stored the names of these 4 files into one file. i.e I have 4 files names as a, b, c & d and these names have been put into one file abcd.txt.

Now I want to cat each file in abcd.txt and grep for a string and put the output in another file.

I am not able to sort it out for myself and would appreciate if anyone can help me in this.

Regards,
Ali
# 2  
Old 05-09-2016
Hello Ali Sarwar,

Welcome to forums, enjoy learning/knowledge sharing here. For your query could you please try following and let me know if this helps you.
Code:
while read line
do
 find -type f -name $line -exec grep "Your_String" >> Output_file
done < "abcd.txt"

Also above code is NOT tested as your requirement was not that clear, so if above doesn't help you please come with more details and all conditions which you have in your requirement too, hope this helps you.

Thanks,
R. Singh
# 3  
Old 05-09-2016
You seem to have at least a vague idea on how to tackle your problem, which is good! Please show your attempts and where you're stuck.
# 4  
Old 05-09-2016
Thank you Ravinder for your help. Following is the detailed info for which I seek help. I have 4 log files auto generated by some binary with the names as given below.

Code:
-rw------- 1 nz   nz   7.9K May  8 14:07 backupsvr.16897.2016-05-08.log
-rw------- 1 nz   nz   4.1K May  8 14:23 backupsvr.7474.2016-05-08.log
-rw------- 1 nz   nz   162K May  8 14:38 backupsvr.25848.2016-05-08.log
-rw------- 1 nz   nz    47K May  8 18:40 backupsvr.29230.2016-05-08.log

What I did is that I listed the files of my choice of date and put the names into another file by using the following command.

Code:
ls *`date +%Y-%m-08`* > output.txt

Not the new file "output.txt" contains all 4 file names from 08th May 2016.

Code:
#cat output.txt
backupsvr.16897.2016-05-08.log
backupsvr.25848.2016-05-08.log
backupsvr.29230.2016-05-08.log
backupsvr.7474.2016-05-08.log

Now I want to fetch 2nd last line from each file and put them into one new file. i.e 2nd last line of 1st file is as "a completed successfully". 2nd file's 2nd last line is "b completed successfully".

I want these 2nd last line into one final file which output would be as below.

Code:
#cat finalfile.txt
a completed successfully
b completed successfully
c completed successfully
d completed successfully

I hope my requirement is clear now. If not please let me know and I will try to explain it more.

Regards,
Ali


Moderator's Comments:
Mod Comment Please use code tags as required by forum rules!

Last edited by RudiC; 05-09-2016 at 08:48 AM.. Reason: Added code tags.
# 5  
Old 05-09-2016
Hello Ali Sarwar,

Could you please use following and let me know if this helps you.
Code:
while read line
do
    tail -2 $line | head -1 >> finalfile.txt
done < "output.txt"

Thanks,
R. Singh

Last edited by RavinderSingh13; 05-09-2016 at 09:09 AM..
This User Gave Thanks to RavinderSingh13 For This Post:
# 6  
Old 05-09-2016
Yes, that worked perfectly as I required. May God bless you Ravinder. Thanks a lot for your time and help. Much appreciated.

Regards,
Ali
This User Gave Thanks to Ali Sarwar For This Post:
# 7  
Old 05-09-2016
Best practise is to produce the output file in one stroke,
and to quote command arguments
Code:
while read line
do
    tail -2 "$line" | head -1
done < output.txt > finalfile.txt

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Removing multiple lines from input file, if multiple lines match a pattern.

GM, I have an issue at work, which requires a simple solution. But, after multiple attempts, I have not been able to hit on the code needed. I am assuming that sed, awk or even perl could do what I need. I have an application that adds extra blank page feeds, for multiple reports, when... (7 Replies)
Discussion started by: jxfish2
7 Replies

2. Shell Programming and Scripting

Reading multiple lines with condition

Hi guys, I need to read following lines and put them in same row …. text: Abcd5437_XYA0_B1_WXYZ_BE 99:00:14:42:55:01:d4:22 99:00:14:42:70:01:d4:22 99:00:14:42:55:03:a0:22 99:00:14:42:70:03:a0:22 ... (4 Replies)
Discussion started by: dc@bos
4 Replies

3. Shell Programming and Scripting

Reading multiple values from multiple lines and columns and setting them to unique variables.

Hello, I would like to ask for help with csh script. An example of an input in .txt file is below, the number of lines varies from file to file and I have 2 or 3 columns with values. I would like to read all the values (probably one by one) and set them to independent unique variables that... (7 Replies)
Discussion started by: FMMOLA
7 Replies

4. Shell Programming and Scripting

How to ignore single or multiple lines between /* and */ while reading from a file in unix?

I have a file proc.txt: if @debug = 1 then message 'Start Processing ', @procname, dateformat(now(*), 'hh:mm:ss'), @julian type info to client; end if; /* execute immediate with quotes 'insert into sys_suppdata (property, value, key_name) location ''' || @supp_server || '.' ||... (5 Replies)
Discussion started by: kidncute
5 Replies

5. Shell Programming and Scripting

Regarding reading lines into a new file

Hi all, I jut use a loop to read lines from the user and redirect it to a file. echo "Enter the line" while read -r LINE do echo $LINE >> FILE if ;then break fi done input app... (1 Reply)
Discussion started by: Ananthdoss
1 Replies

6. Shell Programming and Scripting

skip lines while reading a file

Hi Experts, I am tryin to read a file and while doing so i need to skip the lines which start with a hash (#) char. I thought of using a goto command but a lot of guys on this site say its not the good way to program. Moreover I am using a ksh shell which deos not support goto command. ... (4 Replies)
Discussion started by: bankimmehta
4 Replies

7. Shell Programming and Scripting

reading alternate lines of a file

hi, i have 2 files. file1: 1 2 3 4 5 6 file2: a b c d e f g h i (5 Replies)
Discussion started by: vidyaj
5 Replies

8. UNIX for Dummies Questions & Answers

skip reading certain lines in a file

How can I exclude reading lines in a file that contains the following: filesystem:/home/pach/liv_patches 128005120 88456640 37270758 71% /home/patches That is, all lines that contain and begins with filesystem: should not be processed/read from a file (5 Replies)
Discussion started by: paulsew
5 Replies

9. Shell Programming and Scripting

Reading multiple lines as single

Hi, Is it possible to read every 2 lines as single record, I have a file like below, ~CZK ~TSCHECHISCHE KRONE ~TSCHECH. REPUBLIK Dec 1 2005 12:00AM~ 10.840000~ ~DKK ~DAENISCHE KRONE ~DAENEMARK Dec 2 2005 12:00AM~ ... (9 Replies)
Discussion started by: braindrain
9 Replies

10. UNIX for Advanced & Expert Users

Reading lines within a Unix file.

I have a file that has a list of numbers in it. Each line has a different number. I am trying to create some sort of loop within a script that will pick the numbers up on lines 1 and 2 and then put those figures into the script. It then goes through the process then loops back and reads lines 2 and... (5 Replies)
Discussion started by: mariner
5 Replies
Login or Register to Ask a Question