Sponsored Content
Top Forums Shell Programming and Scripting [Perl] Insert lines before lines. Post 302324728 by ejdv on Thursday 11th of June 2009 02:00:25 PM
Old 06-11-2009
Quote:
Originally Posted by radoulov
OK,
you can use something like this (you should add exception handling, of course):
Hi,

Thanks for hanging in there.
I tried your code and get this:

Code:
C:\Documents and Settings\evroom\Desktop>update.pl test.txt
Can't do inplace edit without backup at C:\Documents and Settings\evroom\Desktop\update.pl line 17.

I tried using Perl on Windows (eventually it will run on a Unix machine), perhaps it's too picky.

When using this part in my code, I get the same output as the input:

Code:
s/$pattern(?!.*$pattern)/$newcode\n$&/s;

E.J.

-----Post Update-----

This works for me:

Code:
#!/usr/bin/perl -w #-d

use warnings;
use strict;

my @lines;
my $counter1 = 0;
my $counter2 = 0;

my $newcode = "line1
line2
line3
line4
line5
line6\n
";

open ( TEXT, "<test.txt");
  @lines = <TEXT>;
close TEXT;

for (@lines) {    
  if ( $_ =~ m/rm \$inprogress/ ) { $counter1++; }
}

open ( TEXT, ">test.txt");
for (@lines) {   
  if ( $_ =~ m/rm \$inprogress/ ) { $counter2++; }
  if ( $counter2 == $counter1) { print TEXT $newcode; $counter1 = 0;}
print TEXT;
}
close TEXT;

It will not win the beauty-contest but it fits the Perl slogan "There is more than one way to do it".

E.J.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to count lines - ignoring blank lines and commented lines

What is the command to count lines in a files, but ignore blank lines and commented lines? I have a file with 4 sections in it, and I want each section to be counted, not including the blank lines and comments... and then totalled at the end. Here is an example of what I would like my... (6 Replies)
Discussion started by: kthatch
6 Replies

2. Shell Programming and Scripting

Insert lines between delimiters

I'm working with a file like: somestuff somemorestuff ... someadditionalstuff STARTTAG ENDTAG someotherstuff somecoolstuff ... somefinalstuffI've got some text (either in a file or piped) to put between STARTTAG and ENDTAG. I was thinking something like grepping for the line number of... (2 Replies)
Discussion started by: BMDan
2 Replies

3. Shell Programming and Scripting

Insert Title To Each Lines

I have a command that returns following, but it's missing a title for each line. YOUR FULL NAME YOUR ID YOUR EMAIL YOUR ADDRESS YOUR PHONE Now, I want to add its title to each line: Name: YOUR FULL NAME ID: YOUR ID Email: YOUR EMAIL Address: YOUR ADDRESS Phone:... (2 Replies)
Discussion started by: tqlam
2 Replies

4. Shell Programming and Scripting

how to insert text between lines of an existing file using perl

Hi , I need some inputs on how to open a file (file.txt) and parse the text example aaa of the file and bbb of the file and add the text zzzz once i parse (aaa and bbb) and followed by the remaining of the text as it is in the file using perl programming. Thanks in advance (3 Replies)
Discussion started by: madhul2002
3 Replies

5. Shell Programming and Scripting

Insert between lines.

Hello...I'm here again. This is the situation I want check if exist text between two lines: Example: interface description --text to verify ip adress if not exists text between 'interface' and 'ip address' i want insert the word 'no description' interface no description --if not... (4 Replies)
Discussion started by: bobbasystem
4 Replies

6. Shell Programming and Scripting

Perl XML, find matching condition and grep lines and put the lines somewhere else

Hi, my xml files looks something like this <Instance Name="New York"> <Description></Description> <Instance Name="A"> <Description></Description> <PropertyValue Key="false" Name="Building A" /> </Instance> <Instance Name="B"> ... (4 Replies)
Discussion started by: tententen
4 Replies

7. Shell Programming and Scripting

[Perl] Split lines into array - variable line items - variable no of lines.

Hi, I have the following lines that I would like to see in an array for easy comparisons and printing: Example 1: field1,field2,field3,field4,field5 value1,value2,value3,value4,value5Example 2: field1,field3,field4,field2,field5,field6,field7... (7 Replies)
Discussion started by: ejdv
7 Replies

8. Shell Programming and Scripting

sed - insert two lines

I have done this sed command to insert one line after a specific string is found: sed '/patternstring/ a\ new line string' file1 But how do I insert two lines? This is not possible: sed '/patternstring/ a\ new line string \a new line string 2' file1 (2 Replies)
Discussion started by: locoroco
2 Replies

9. Shell Programming and Scripting

Insert few lines above a match using sed, and within a perl file.

Greetings all, I am trying to match a string, and after that insert a few lines above that match. The string is "Version 1.0.0". I need to insert a few lines ONLY above the first match (there are many Version numbers in the file). The rest of the matches must be ignored. The lines I need to... (2 Replies)
Discussion started by: nagaraj s
2 Replies

10. Shell Programming and Scripting

Insert text before first 'n' lines

I want to put a particular text, say, the hash '#' before each of the first n lines of a file. How can I do that? (4 Replies)
Discussion started by: hbar
4 Replies
curs_scroll(3CURSES)					     Curses Library Functions					      curs_scroll(3CURSES)

NAME
curs_scroll, scroll, scrl, wscrl - scroll a curses window SYNOPSIS
cc [ flag ... ] file ... -lcurses [ library ... ] #include <curses.h> int scroll(WINDOW *win); int scrl(int n); int wscrl(WINDOW *win, int n); DESCRIPTION
With the scroll() routine, the window is scrolled up one line. This involves moving the lines in the window data structure. As an optimiza- tion, if the scrolling region of the window is the entire screen, the physical screen is scrolled at the same time. With the scrl() and wscrl() routines, for positive n scroll the window up n lines (line i+n becomes i); otherwise scroll the window down n lines. This involves moving the lines in the window character image structure. The current cursor position is not changed. For these functions to work, scrolling must be enabled via scrollok(). RETURN VALUES
All routines return the integer ERR upon failure and an integer value other than ERR upon successful completion. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |MT-Level |Unsafe | +-----------------------------+-----------------------------+ SEE ALSO
curs_outopts(3CURSES), curses(3CURSES), attributes(5) NOTES
The header <curses.h> automatically includes the headers <stdio.h> and <unctrl.h>. Note that scrl() and scroll() may be macros. SunOS 5.11 31 Dec 1996 curs_scroll(3CURSES)
All times are GMT -4. The time now is 07:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy