Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

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

by afoken (Canon)
on May 09, 2015 at 06:42 UTC ( #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? | Other CB clients
Other Users?
Others contemplating the Monastery: (1)
As of 2021-09-18 05:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?