Sponsored Content
Top Forums Shell Programming and Scripting replace a string with contents of a txt file containing multiple lines of strings Post 302515827 by cambridge on Thursday 21st of April 2011 03:40:54 AM
Old 04-21-2011
Quote:
Originally Posted by Franklin52
Code:
awk '/kw01/{system("cat file.txt");next}1' file.xml > newfile.xml

As this is an XML file, I'm not sure one can assume that the text 'kw01' is going to appear on a line by itself. You are, after all, replacing the entire line with the contents of the file.

Consider the following pseudo input:
Code:
<xml>
<myfile><contents>kw01</contents></myfile>
</xml>

It would be better to get AWK to replace just the text 'kw01' and not any surrounding characters. This can be achieved as follows, assuming the text file is called 'kw01.txt':
Code:
nawk -v f="kw01.txt" 'BEGIN {while (getline < f) txt=txt $0 "\n"} /kw01/ {sub("kw01", txt)} 1' file.xml > newfile.xml

Best regards,
Mark.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

grep command to find multiple strings in multiple lines in a file.

I want to search files (basically .cc files) in /xx folder and subfolders. Those files (*.cc files) must contain #include "header.h" AND x() function. I am writing it another way to make it clear, I wanna list of *.cc files that have 'header.h' & 'x()'. They must have two strings, header.h... (2 Replies)
Discussion started by: ritikaSharma
2 Replies

2. Shell Programming and Scripting

replace (sed?) a single line/string in file with multiple lines (string) from another file??

Can someone tell me how I can do this? e.g: Say file1.txt contains: today is monday the 22 of NOVEMBER 2010 and file2.txt contains: the 11th month of How do i replace the word NOVEMBER with (5 Replies)
Discussion started by: tuathan
5 Replies

3. UNIX for Advanced & Expert Users

Find and replace txt between two strings in flat file

Hi There... I need to serach and replace strngs in a text file. My file has; books.amazon='Let me read' news.bestseller='xyz' expected output is books.amazon=NONFOUND news.bestseller=NONFOUND Can I first find the text between string1= books.amazon=' and string2= ' (locate the text... (1 Reply)
Discussion started by: Hiano
1 Replies

4. Shell Programming and Scripting

replace (sed?) a string in file with multiple lines (string) from variable

Can someone tell me how I can do this? e.g: a=$(echo -e wert trewt ertert ertert ertert erttert erterte rterter tertertert ert) How do i replace the STRING with $a? I try this: sed -i 's/STRING/'"$a"'/g' filename.ext but this don' t work (2 Replies)
Discussion started by: jforce
2 Replies

5. Shell Programming and Scripting

Script to find & replace a multiple lines string across multiple php files and subdirectories

Hey guys. I know pratically 0 about Linux, so could anyone please give me instructions on how to accomplish this ? The distro is RedHat 4.1.2 and i need to find and replace a multiple lines string in several php files across subdirectories. So lets say im at root/dir1/dir2/ , when i execute... (12 Replies)
Discussion started by: spfc_dmt
12 Replies

6. Shell Programming and Scripting

Replace Contents between 2 strings in a file with contens of another file

Please I want to replace all the contents beween "Section" and "Ensection" in file1 with all contents in file2. Example: file1: Section "Screen" DefaultDepth 24 SubSection "Display" Depth 8 ViewPort 0 0 Modes "1024x768" "800x600" "640x480" EndSubsection SubSection "Display" Depth... (9 Replies)
Discussion started by: powelltallen
9 Replies

7. Shell Programming and Scripting

Replace the .txt file between two strings in XML file

Hi i am having XML file with many number of lines,I need to replace between two strings with .txt file using awk. For ex <PersonInfoShipTo ------------------------------ /> My requirement is to replace the content between <PersonInfoShipTo ------------------------------ /> help me. Thanks... (9 Replies)
Discussion started by: Padmanabhan
9 Replies

8. Shell Programming and Scripting

Find multiple strings and replace single string

Hi, following Perl code i used for finding multiple strings and replace with single string. code: #!/usr/bin/perl my @files = <*.txt>; foreach $fileName (@files) { print "$fileName\n"; my $searchStr = ',rdata\)' | ',,rdata\)' | ', ,rdata\)'; my $replaceStr =... (2 Replies)
Discussion started by: chettyravi
2 Replies

9. Shell Programming and Scripting

sed - Replace string with file contents

Hello, I have two files: file1 and file2 file1 has the following info: --- host: "localhost" port: 3000 reporter_type: "zookeeper" zk_hosts: - "localhost:2181" file2 contains an IP address (1.1.1.1) What I want to do is replace localhost with 1.1.1.1, so that the... (4 Replies)
Discussion started by: Jay Kah
4 Replies

10. Shell Programming and Scripting

Replace a string with multiple lines

Hello Guys, I need to replace a string with multiple lines. For eg:- ABC,DEF,GHI,JKL,MNO,PQR,STU need to convert the above as below:- ABC,DEF, GHI1 GHI2 GHI3, JKL,MNO, PQR1 PQR2 PQR3, STU i have tried using code as:- (2 Replies)
Discussion started by: jassi10781
2 Replies
RPL(1)							    BSD General Commands Manual 						    RPL(1)

NAME
rpl -- replace strings in files SYNOPSIS
rpl [-LhiwbqvsRepfdt] [-xSUFFIX] <old_string> <new_string> <target_file ...> DESCRIPTION
Basic usage is to specify two strings and one or more filenames or directories on the command line. The first string is the string to replace, and the second string is the replacement string. -h, --help A short help text. -L, --license Show the license and exit. -xSUFFIX Search only files ending with SUFFIX, e.g. ``.txt''. May be specified multiple times. -i, --ignore-case Ignore the case of old_string. -w, --whole-words Make old_string match only on word boundaries. -b, --backup Move the original files to filename~ before replacing them. -q, --quiet Quiet mode. -v, --verbose Verbose mode. -s, --dry-run Simulation mode, no files are changed. -R, --recursive Recurse into subdirectories. -e, --escape Expand escape sequences in old_string and new_string. Examples of escape sequences are ' ' (new-line), ' ' (tab), 'x42' (hexadec- imal number 42), '33' (octal number 033). -p, --prompt Prompt for confirmation before replacing each file. -f, --force Ignore errors when trying to restore permissions and file ownership. -d, --keep-times Keep modification times when replacing files. -t, --use-tmpdir Use a temporary directory for storing temporary files, usually the value of the environment variable TMPDIR. The default is to put temporary files in the same directory as the file being modified. -a, --all Do not ignore files and directories starting with . IMPLEMENTATION NOTES
An effort has been made to make the program behave as much as the original rpl as necessary. Where it has been possible to make improve- ments, improvements have been made. This implementation lacks many of the bugs in the original. EXAMPLES
Replace all occurences of ``F'' (on word boundaries) with ``A'' in all text files under the grades/ directory: $ rpl -Rwd -x'.txt' 'F' 'A' grades/ SEE ALSO
find(1), sed(1). HISTORY
This program was written for Debian as a free replacement for the non-free rpl program by Joe Laffey. AUTHORS
Goran Weinholt <weinholt@debian.org>. Debian July 31, 2005 Debian
All times are GMT -4. The time now is 07:46 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy