I want to read lines until first blank line in first attempt put those lines into seperate variable and then do something and then read line from first empty line to second empty line, put those lines into seperate variable and then do something...etc. I want to this to the end of the file. It could be 3-5 lines. How can I do this. Please assist. Thanks
A tricky question indeed. It depends on what you are then going to go on and do, but if you are on AIX, there is a -p flag on grep to get you a paragraph. I'm not sure how many variants have it available through.
If the file is not large, you could:-
It will be slow for larger files, but as an alternate you could split the file into multiple smaller ones based on the blank line, then process them in turn:-
Then, loop through the files generated. You may need to consider the length of the file name counter (-n 6 in my example) and the red double dots are only if the file is in the current directory. You may have to adjust that to suit too.
You can then (because you are in a new directory with only your data in it) run a loop to process the files as you wish. I would recommend against a for file in * construct if you expect a lot of files as this may exceed the command line limit. You have the counter, so probably best to use that:-
If you are looking for just certain patterns, you could get a list of file names with a grep from this point and work through them too.
Thanks All for your replies...
I started putting something together from first version of the code from "rbatte1" and it worked except that i had few issues with the loop and code that i put in to do something but all those resolved now and it took about 35mins to finish up some compares with 155k users file. By the way, I'm on RHEL and using bash script. Anyways thanks all for your support. Really helped.
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)
Hello community,
what I need to do is read 2 rows at time from a file. I have this simple solution:
File to read:
LINE1
LINE2
LINE3
LINE4
LINE5
LINE6
LINE7
LINE8Read routine:#!/bin/ksh
sed '1,3d' /out.txt | while read line; do
read line2
echo $line $line2
doneResult:LINE1... (5 Replies)
I am trying to create a script which will read 2 files and use the lines of file 1 for each line on file 2.
here's my sample code
cat $SBox |
while read line
do
cat $Date |
while read line
do $SCRIPTEXE <line from first file> $2 <line from 2nd file>
... (12 Replies)
I have one long line text with semicolon used as separator between values in that line. Now, I want to separate the line into multiple line right after every 29th field.
example input line:
... (1 Reply)
I have one long line text with semicolon used as separator between values in that line. Now, I want to separate the line into multiple line right after every 29th field.
example input line:
... (2 Replies)
Hi all,
I am just trying to read the contents of a file. basically this file has a list of dat files. then i want to access these dat files n execute a script on them one by one using a loop.
i hav e written like this
ls -l | cut -c 58-88 > file1.txt
while
do
arr1="$( sed -n '1p'... (7 Replies)
Hi, Guys
I am new to shell programming and just get stuck with one simple question. please kindly help.
According to the tutorial here, we can do something like
for NODE in "ABC 10" "EFG 20"
do
set -- $NODE
echo "letter is $1, number is $2"
done
And the result will... (3 Replies)
Hi,
Currently I am coding up a nasty way of reading file input using *cat* rather than *read*. My text input looks like
TextA 100
TextB 110
TextC 120
Currently I am using cat |while read line to read the first column and second column fields.
cat foo.txt|while read line
do
... (1 Reply)
Could any one tell me how to read and match multiple lines in perl? Did this code below still work in this situation?
while (<FILE>) {
if (/ /) {
}
}
Thanks a lot! (5 Replies)