Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: How to insert the content of a file into another file before/after a pattern match?

by afoken (Chancellor)
on May 09, 2015 at 06:42 UTC ( [id://1126175]=note: print w/replies, xml ) Need Help??


in reply to How to insert the content of a file into another file before/after a pattern match?

I want to insert file2 in file1 either after architecture line or before signal line... i.e. i want to insert this component in this component declaration part....Give me some idea to do this monks....

Easy:

  • Assuming Windows: Start the build-in editor (notepad.exe). Open file1. Position the cursor after the architecture line or before the signal line. Start another instance of the editor. Open file2. Press Ctrl-A to mark the entire file. Press Ctrl-C to copy it to the clipboard. Switch back to the first editor instance. Press Ctrl-V to paste from the clipboard. Save the file.
  • Assuming Unix/Linux with joe: Enter joe file1 file2 at the command prompt. Position the cursor after the architexture line or before the signal line. Press Ctrl-K, then N to switch to file2. Press Ctrl-K, then B to mark the start of a block. Press Ctrl-K, then Ctrl-V to move to the end of file2. Press Ctrl-K, then K to mark the end of a block. Press Ctrl-K, then P to switch back to file1. Press Ctrl-K, then C to copy the block into file1. Press Ctrl-K, then D to save file1. Press Ctrl-C to leave joe.

Or did you expect us to write code for a general solution?

OK, how about this:

Enable strict checks and warnings. Load a module that automatically handles I/O errors. Open file handle IN1 for reading from "file1". Open file handle OUT for writing to "result". While reading a line from IN1 does not indicate end-of-file: Write the line just read to OUT. If the line just read contains "architecture": Open file handle IN2 for reading from "file2". While reading a line from IN2 does not indicate end-of-file: Write the line just read to OUT. Close file handle IN2. Close file handle OUT. Close file handle IN1.

Hint for the first line: use strict; use warnings;. Hint for the error handling module: autodie. Everything else is in perlfunc.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
  • Comment on Re: How to insert the content of a file into another file before/after a pattern match?
  • Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1126175]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (2)
As of 2025-06-22 20:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.