Need help to modify perl script: Text file with line and more than 1 space


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help to modify perl script: Text file with line and more than 1 space
# 1  
Old 03-19-2009
Need help to modify perl script: Text file with line and more than 1 space

Dear Friends,
I am beginner in Perl and trying to find the problem in a script. Kindly help me to modify the script. My script is not giving the output for the last field and followed text (LA: Language English). Input file & script as follows:

Input file:

Thu Mar 19 2:34:14 EDT 2009
STC
Data query:

Record 1 of 1

DN: Data Name
Information Sciences
TI: Title
Distribution and abundance of bound volumes of the file in institute
shelves from 1978
AU: Author
Sahu, SR; Gawas, AKG
AF: Affiliation
Inst. of document scanning and documentation profiling at library,
toward the prograssive society and establishment
SO: Source
Test document file. Vol. 5, no. 1, pp. 1-14. Jul 1990.
DE: Descriptors
Article Subject Terms: Abundance; Ecological distribution;
Geographical distribution; Life cycle; Zooplankton; Article Taxonomic
Terms: Euphausia; Article Geographic Terms: ISW,
LA: Language
English

Perl Script:

#!/usr/bin/perl -w

my $found_f = 0;
my ($lastline, $line);
open (INPUTFILE, "test.txt");

while (<INPUTFILE>)
{
chomp;

if (/^[A-Z]{2}:\s/) {
$lastline = $line;
$line = $_;
$found_f = 1;
}
elsif (! /^[A-Z]{2}:\s/ && $found_f) {
s/^ {4}/ /;
$line .= $_;
next;
}
elsif (/^$/) {
$lastline = ' ';
$found_f =0;
}
print "$lastline\n";

Kindly help me in modifying the script to proceed further

Last edited by srsahu75; 03-19-2009 at 08:29 AM..
# 2  
Old 03-19-2009
You have
Code:
Loop
    If matches 2 characters followed by a colon
        Set lastline to line
        Set line to input from file
    If doesn't match 2 characters followed by a colon
        Append input from file to line
End Loop
Print lastline

You can clearly see from this that lastline is only computed on a 2 character/colon line, so the last input line will always be missed as it's not a 2 character/colon line.
# 3  
Old 03-20-2009
Kindly let me know, "what I should do to get the desired result?"
# 4  
Old 03-20-2009
Quote:
Originally Posted by srsahu75
Kindly let me know, "what I should do to get the desired result?"
What happened to the post on perlguru? Didn't like that suggestion?

Sorry for not debugging your code but I found it much easier to rewrite it:

Code:
use strict; 
use warnings; 
open (INPUTFILE, "test.txt");  
MAIN: while (<INPUTFILE>){  
   chomp;  
   if (/^[A-Z]{2}:\s/) { 
      my $line = $_; 
      while (<INPUTFILE>) { 
         chomp; 
         if (/^[A-Z]{2}:\s/ or eof) { 
            print $line,"\n"; 
            redo MAIN  
         } 
         $line .= $_; 
      } 
   } 
}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Modify text file if found multiple pattern match for every line.

Looking for help, i have input file like below and want to modify to expected output, if can without create additional file, hope can direct modify it. have 2 thing need do. 1st is adding a word (testplan generation off) after ! ! IPG: Tue Aug 07 14:31:17 2018 2nd is adding... (16 Replies)
Discussion started by: kttan
16 Replies

2. Shell Programming and Scripting

Perl script to modify csv file

Hi Friends, I want to convert a csv file into a ordinary .txt file. I am able to convert but I want the output to look as shown below in the .txt file table findhost= { {"xyz","abc"}, {"rxz","mmz"}, {"vrr","nnz"}, } default={"NONE"} My current perl script #!/usr/bin/env perl... (12 Replies)
Discussion started by: dbashyam
12 Replies

3. Shell Programming and Scripting

Modify one line in a plain text file

Hi everyone, I want to know, if there is a way to modify one line in a text file with unix script, with out re-writing all the file. For example, i have this file: CONFIGURATION_1=XXXX CONFIGURATION_2=YYYY CONFIGURATION_3=ZZZZ supose i have a command or function "modify" that... (7 Replies)
Discussion started by: Xedrox
7 Replies

4. Shell Programming and Scripting

Modify the text file by script

Hi All the Helpers! I have a text file which looks like input.txt.I would request to please suggest me how can I make this file look like output.txt input.txt VOP 111 0 1 2 DEM 111 0 222 333 444 555 879 888 987 888 989 VOP 118 0... (2 Replies)
Discussion started by: Indra2011
2 Replies

5. Shell Programming and Scripting

Modify a perl line to parse out and output to another format

Hey there... I am looking for a way to take the below contents ( small excerpt) of this file called PTR.csv ptrrecord,0000002e0cc0.homeoffice.anfcorp.com,,10.11.191.62,,,False,62.191.11.10.in-addr.arpa,,302400,default... (6 Replies)
Discussion started by: richsark
6 Replies

6. Shell Programming and Scripting

PERL or SHELL Scrript to search in Directories by taking line by line from a text file

Unix box server version *********** >uname -r B.11.00 >echo $SHELL /usr/bin/ksh --> in this server, I have the path like /IMbuild/dev/im0serv1 ---> in that directory I have the folders startup(.jsp files nearly 100 jsp's ) and scripts(contains .js files nearly 100 files) ... (9 Replies)
Discussion started by: pasam
9 Replies

7. Shell Programming and Scripting

Modify text file using shell script

Hi, I have a text file which is following format - COL VAL ABC 1 ABC 2 ABC 3 ABC 4 ABC 5 My requirement is to search for a particular value (provided by user) in the file and comment the previous entries including that as well. E.g. If I search for number 3, then the output... (6 Replies)
Discussion started by: bhupinder08
6 Replies

8. Shell Programming and Scripting

Help with a shell script to modify one line and copy the next 9 to same file

Hi everyone, the problem is quite simple, yet I can't find an easy solution using awk. I need to search for a string in $3, then if I find this string, copy the line,modify $3, and copy the next 9 lines to the same file. My problem is in the copying of the lines... Finding and modifying... (5 Replies)
Discussion started by: Teroc
5 Replies

9. Shell Programming and Scripting

awk, perl Script for processing a single line text file

I need a script to process a huge single line text file: The sample of the text is: "forward_inline_item": "Inline", "options_region_Australia": "Australia", "server_event_err_msg": "There was an error attempting to save", "Token": "Yes", "family": "Family","pwd_login_tab": "Enter Your... (1 Reply)
Discussion started by: hmsadiq
1 Replies

10. Shell Programming and Scripting

Modify Specific Line of a Text File

Given a text file, how do you add a line of text after a specific line number? I believe I would want to use "sed" but I am unsure of the syntax. Thank you. Mike (5 Replies)
Discussion started by: msb65
5 Replies
Login or Register to Ask a Question