Sponsored Content
Top Forums Shell Programming and Scripting replace a string with contents of a txt file containing multiple lines of strings Post 302515839 by 4dirk1 on Thursday 21st of April 2011 04:11:09 AM
Old 04-21-2011
Quote:
Originally Posted by Franklin52
Use nawk or /usr/xpg4/bin/awk on Solaris.
Hi sir i tried nawk, it seemed to work, but it was not the output i was expecting. this xml file opens up as a spreadsheet when sent out to windows environment. Now I placed keywords like 'kw01' on certain cells in this xml file as a marker in which i have to replace this keywords with data taken from SQL queries which i store in txt files (fatal_alerts.txt). Now what happens is, it did replace the keyword 'kw01' with the contents of 'fatal_alerts.txt', but it also removed the tag responsible for printing the contents in the xml file.

before running this command: nawk '/kw01/{system("cat fatal_alerts.txt");next}1' template.xml > test.xml

this is the line in the xml file where 'kw01' is present.
Quote:
<Cell ss:StyleID="s78"><Data ss:Type="String">kw01</Data></Cell>
after executing nawk '/kw01/{system("cat fatal_alerts.txt");next}1' template.xml > test.xml, this is what happens with the line above:

Quote:
no rows selected
the tags for 'kw01' were removed. while i was expecting something like:
Quote:
<Cell ss:StyleID="s78"><Data ss:Type="String">

no rows selected

</Data></Cell>
this is nerve wrecking. Smilie
 

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
BBE(1)																	    BBE(1)

NAME
bbe - binary block editor SYNOPSIS
bbe [options]... DESCRIPTION
bbe is a sed-like editor for binary files. It performs binary transformations on the blocks of input stream. OPTIONS
bbe accepts the following options: -b, --block=BLOCK Block definition. -e, --expression=COMMAND Add the COMMAND to the commands to be executed. -f, --file=script-file Add the contest of script-file to commands. -o, --output=name Write output to name instead of standard output. -s, --suppress Suppress normal output, print only block contents. -?, --help List all available options and their meanings. -V, --version Show version of program. BLOCK can be defined as: N:M Where N'th byte starts a M bytes long block (first byte is 0). :M Block length in input stream is M. /start/:M String start starts M bytes long block. /start/:/stop/ String start starts the block and block ends to string stop. /start/: String start starts the block and block will end at next occurence of start. Only the first start is included to the block. :/stop/ Block starts at the beginning of input stream (or at the end of previous block) and ends at the next occurrence of stop. String stop will be included to the block. Special value '$' of M means the end of stream. Default value for block is 0:$, meaning the whole input stream. Both start and stop strings are included to block. Nonprintable characters can be escaped as nn decimal xnn hexadecimal nnn octal Character '' can be escaped as '\'. Escape codes 'a','',' ',' ','v','f',' ' and ';' can also be used. Length (N and M) can be defined as decimal (n), hexadecimal (xn) or octal (0n) value. COMMAND SYNOPSIS
bbe has two type of commands: block and byte commands, both are allways related to current block. That means that the input stream outside of block remains untouched. Block commands D [n] Delete the n'th block. Without n, all found blocks are deleted from the output stream. I string Insert the string string before the block. A string Append the string string at the end of block. J n Skip n blocks before executing commands after this command. L n Leave all blocks unmodified starting from block number n. Affects only commands after this command. N Before printing a block, the file name in which the block starts is printed. F f Before printing a block, the input stream offset at the begining of the block is printed. f can be H, D or O for Hexadecimal, Deci- mal or Octal format of offset. B f Before printing a block, the block number is printed (first block == 1) f can be H, D or O for Hexadecimal, Decimal or Octal format of block number. > file Before printing a block, the contents of file file is printed. < file After printing a block, the contents of file file is printed. Byte commands n in byte commands is offset from the beginning of current block (starts from zero). r n string Replace bytes starting at position n with string string. i n string Insert string starting at position n. p format The contents of block is printed in format defined by format. format can have any of the formats H, D, O, A and B for Hexadecimal, Decimal, Octal, Asciii and Binary. s/search/replace/ Replace all occurrences of search with replace. y/source/dest/ Translate bytes in source to the corresponding bytes in dest. Source and dest must have equal length. d n m|* Delete m bytes starting from the offset n. If * is defined instead of m, then all bytes starting from n are deleted. c from to Convert bytes from format from to to. Currently supported formats are: BCD Binary coded decimal ASC Ascii j n Commands after the j-command are ignored for first n bytes of the block. l n Commands after the l-command are ignored from n'th byte of the block. w file Write bytes from the current block to file file. Commands before w-command have effect to what will be written. %B or %nB in file will be replaced by current block number. n in %nB is field length, leading zero in n causes the block number to be left padded with zeroes. & c Performs binary and with c. | c Performs binary or with c. ^ c Performs binary xor with c. ~ Performs binary negation. u n c All bytes from start of the block to offset n are replaced by c. f n c All bytes starting from offset n to end of the block are replaced by c. x Exchange the contents of nibbles (half an octet) of bytes. Nonvisible characters in strings can be escaped same way as in block definition strings. Character '/' in s and y commands can be any visi- ble character. Note that the D, A, I, F, B, c, s, i, y, p, <, > and d commands cause the length of input and output streams to be different. EXAMPLES
bbe -e "s/c:\temp\data1.txt/c:\temp\data2.txt/" file1 all occurences of "c: empdata1.txt" in file file1 are changed to "c: empdata2.txt" bbe -b 0420:16 -e "r 4 x12x4a" file1 Two bytes starting at fifth byte of a 16 byte long block starting at offset 0420 (octal) in file1 are changed to hexadecimal values 12 and 4a. bbe -b :16 -e "A x0a" file1 Newline is added after every block, block length is 16. SEE ALSO
sed(1). AUTHOR
Timo Savinen <tjsa@iki.fi> 2006-11-02 BBE(1)
All times are GMT -4. The time now is 02:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy