Inserting a new line into an already existing file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Inserting a new line into an already existing file
# 1  
Old 07-06-2012
Java Inserting a new line into an already existing file

hello ..

I am new to perl scripting, I have a text file, and would like to insert 3 new lines into the same file at different line numbers using perl scripting. Any Help regarding this will be very useful.

say the file is sample.txt, contents are

Code:
aaaaa
bbbb
ccccc
dddd
eeeee
ffffffff
ggggg

now i want to insert 3 new lines into the file, it should be as follows

Code:
11111
aaaaa
bbbb
ccccc
dddd
eeeee
ffffffff
2222
3333
ggggg


Thanks in advance

Last edited by Scrutinizer; 07-06-2012 at 09:52 AM.. Reason: code tags
# 2  
Old 07-06-2012
Please use code tags for sample data. Try:
Code:
perl -pe '$_="11111\n$_" if $.==1;$_.="2222\n3333\n" if $.==6' sample.txt

# 3  
Old 07-06-2012
Java

when i call this command using from a perl script

Code:
system(perl -pe '$_="11111\n$_" if $.==1;$_.="2222\n3333\n" if $.==6'sample.txt);

i am getting the following errors

Code:
Number found where operator expected at sample.txt near ""perl -pe '$_="11111"
(Missing operator before 11111?)
Backslash found where operator expected at sample.txt, near "11111\"
        (Missing operator before \?)
String found where operator expected at sample.txt near "$_" if $.==1;$_.=""
        (Missing operator before " if $.==1;$_.="?)
Number found where operator expected at sample.txt near "" if $.==1;$_.="2222"
        (Missing operator before 2222?)
Backslash found where operator expected sample.txt near "2222\"
        (Missing operator before \?)
Backslash found where operator expected at sample.txt, near "n3333\"
syntax error at sample.txt near ""perl -pe '$_="11111"

Moderator's Comments:
Mod Comment Please use code tags next time for your code and data.


---------- Post updated at 06:48 PM ---------- Previous update was at 06:22 PM ----------

Code:
system("perl -pe '$_="11111\n$_" if $.==1;$_.="2222\n3333\n" if $.==6'sample.txt");

still i am getting the same errors

Moderator's Comments:
Mod Comment Please use code tags next time for your code and data.

Last edited by Scrutinizer; 07-06-2012 at 11:33 AM..
# 4  
Old 07-06-2012
Quote:
Originally Posted by hemalathak10
when i call this command using from a perl script

i am getting the following errors

Code:
system("perl -pe '$_="11111\n$_" if $.==1;$_.="2222\n3333\n" if $.==6'sample.txt");

still i am getting the same errors
1. If you are running a command from perl why don`t you open file directly and do it with perl OPEN function?
2. while you are running the command you need to escape $ & " in command line, those are intended to be used on command line. When you use the command this way your running program is replacing those values! also ' " ' is completing the statement in mid way.

Try :

Code:
system("perl -pe '\$_=\"11111\\n\$_\" if \$.==1;\$_.=\"2222\\n3333\\n\" if \$.==6' sample.txt");

# 5  
Old 07-09-2012
Java

thank you zedex and bartus11, it works fine now SmilieSmilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Inserting a line to a file

Hi, consider a file called mobile.txt as follows: For type lovers, add a new line at the end of it by copying its previous line and add a +1 to the field1, field2 Additionally, there are only 3 plans available to lovers type, so it should not work for lovers type already having 3 lines under... (11 Replies)
Discussion started by: Gautham
11 Replies

2. Shell Programming and Scripting

Inserting a line in a file after every alternate line

Friends , I have a large file and i need to insert a line after every line.I am actually unaware how to do it.Any help appreciated. My File control station *ATM* , qread $OSS.Jul13A.FI01 interval 1 intcount 1 control station *ATM* , qread $OSS.Jul13A.FI02 interval 1 intcount... (4 Replies)
Discussion started by: appu2176
4 Replies

3. Shell Programming and Scripting

Inserting IP in one line of a file

Hi, I have this line: ip=111.222.133.144,mac=00:16:3E:2A:08:3C,vifname=veth360','ip=10.2.3.4,vifname=veth360a' ^ | ------- I want to insert this IP 144.133.222.111 between "144"... (4 Replies)
Discussion started by: iga3725
4 Replies

4. Shell Programming and Scripting

inserting line to a file

I have posted it previously but somehow could not delete the previous post.I felt i could not explain the problem statement well. Here t goes.I have a file say File1. Now i need a specific pattern from the lines to be added to the other line. File: red blue green ABC.txt@ABC END black... (1 Reply)
Discussion started by: ngupta
1 Replies

5. Shell Programming and Scripting

Need Help in Inserting a new line in a file using PERL

I need a perl script to find and replace a specific pattern in a file to a new line. BAsically I have a single line data in a file with 10 mb to 200 MB. I want to put a new line based on a specific pattern to open the file in Excel / Access. Following is the sample data in a file ... (1 Reply)
Discussion started by: portalfaq
1 Replies

6. Shell Programming and Scripting

inserting a new line in a file

I'm sure you guys have answered this elsewhere but I can't seem to find where so here goes. #!/bin/bash n=120 a=$(sed '120q;d' energy.xvg) while ;do a=$(sed $n'q;d' energy.xvg) echo "$a \n" > newfile n=$(($n+100)) done exit 0 that script should read the file energy.xvg, start at... (1 Reply)
Discussion started by: gelitini
1 Replies

7. Shell Programming and Scripting

comparing and inserting common line in other file

Hi, I have two files-- file1- file2:- i have to compare two files and where the uid is same i have to take the password and insert it above the telephone number. the output should be like this-- uid : 1418 common so insert the password thbs above the line telephonenumber. (2 Replies)
Discussion started by: namishtiwari
2 Replies

8. Shell Programming and Scripting

Inserting New Line in File using Sed ??

Dear All, I have a file called football where i have a list of 11 players each on different lines. I wish to add a name of another player on the first line. I have created a file called footballscript in vi writing the following sed command to achieve this ... cat football | sed -e '1 i\... (4 Replies)
Discussion started by: Mary_xxx
4 Replies

9. UNIX for Dummies Questions & Answers

Inserting Date&Time Stamp In Existing Log File

I am trying to insert a line with a date stamp in a file that is used to monitor activity in one of our directories. By doing this, I want to grep that file each day and go to the last entry for each time a error occurred and pull all errors generated if any exist. If error exists I want that error... (3 Replies)
Discussion started by: shephardfamily
3 Replies

10. UNIX for Dummies Questions & Answers

Print one line of Existing File

Hi all, I need to know what command/s I can use to print lines from a file. I cannot do pattern matching, so grepping for a string is not possible. I'd like to say "print line 3" etc. Any ideas? Ta. (2 Replies)
Discussion started by: danhodges99
2 Replies
Login or Register to Ask a Question