Linux command to find and replace occurance of more than two equal sign with "==" from XML file.


 
Thread Tools Search this Thread
Operating Systems Linux Linux command to find and replace occurance of more than two equal sign with "==" from XML file.
# 8  
Old 06-26-2012
Rule of thumb is never edit your originals. If you destroy your data, you are screwed.
# 9  
Old 07-27-2012
I agree that you should never edit the originals. How ever you can inplace edit a file with sed:


sed -i 's/==*/==/g' file.txt (or what ever the file is called).

I use this a lot in post kickstart scripts (always with a copy of the original file created first.) It is really useful.
# 10  
Old 07-27-2012
Even that doesn't edit "in place". It deletes the old file and creates a new one.

This is important since this has side-effects if you're not the owner of the file -- it changes the owner.
# 11  
Old 07-27-2012
i was under the impression ed does it right.

Code:
mute@goflex:~$ ls -li input && cat input
7345 -rw-r--r-- 1 mute mute 38 Jul 27 20:32 input
line1 =
line2 ==
line3 ===
line4 ====
mute@goflex:~$ printf '%s\n' 'g/===*/s//==/g' w q | ed -s input
mute@goflex:~$ ls -li input && cat input
7345 -rw-r--r-- 1 mute mute 35 Jul 27 20:32 input
line1 =
line2 ==
line3 ==
line4 ==

posix, but not wasn't installed on debian squeeze minimal..
# 12  
Old 07-27-2012
ed does edit the file in place, but it slurps it into memory. That's a lot of memory if the file is 38 GiB. Further, some (most?) ed implementations keep a copy of the entire buffer in a tmp file.

If a humongous file (larger than unused storage and available memory) needs to be edited in place, it can be, but you may have to craft a custom solution rather than use a general purpose editor.

Regards,
Alister
# 13  
Old 07-27-2012
Hi.
Quote:
Originally Posted by Corona688
Even that doesn't edit "in place". It deletes the old file and creates a new one.

This is important since this has side-effects if you're not the owner of the file -- it changes the owner.
And the inode, which may have consequences for some programs: inode - Wikipedia, the free encyclopedia ... cheers, drl
# 14  
Old 07-27-2012
Further to @alister. How on earth did you end up in the situation of trying to amend a 38Gb flat file with unix Shell tools?
Do you have a database engine?
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How do I redirect output from "find", either to a file or another command?

I'm trying to find out what happened to the rogue game that apt-get told me it installed, so I thought I would find the file. I went to the root and entered: find -name "rog*.*" I get a large number of lines saying my access is denied in various directories. I figure I'll practice my Unix... (14 Replies)
Discussion started by: arghvark
14 Replies

2. Shell Programming and Scripting

Delete all log files older than 10 day and whose first string of the first line is "MSH" or "<?xml"

Dear Ladies & Gents, I have a requirement to delete all the log files in /var/log/test directory that are older than 10 days and their first line begin with "MSH" or "<?xml" or "FHS". I've put together the following BASH script, but it's erroring out: for filename in $(find /var/log/test... (2 Replies)
Discussion started by: Hiroshi
2 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Ubuntu

How to change "more" to "more or equal" in this line?

Hi, Below line selects only dates comes after than today. I need to change below line as "more or equal": awk -F\## -v d=$(date +%Y%m%d) '{if($NF>d)print}' /usr/batch/pill.txt > /usr/batch/pill_in_use.txt When we change the code, it will print today's date and following dates only. ... (2 Replies)
Discussion started by: baris35
2 Replies

5. Shell Programming and Scripting

Problem with "find" and "grep" command

I want to list all files/lines which except those which contain the pattern ' /proc/' OR ' /sys/' (mind the leading blank). In a first approach I coded: find / -exec ls -ld {} | grep -v ' /proc/| /sys/' \; > /tmp/list.txt But this doesn't work. I got an error (under Ubuntu): grep:... (5 Replies)
Discussion started by: pstein
5 Replies

6. UNIX for Dummies Questions & Answers

replace "," with "." only in specific columns of a file?

Hi all, I have this text file containing 9 columns separated by space. The 8th columns contains the numbers. C1 C2 C3 C4 C5 C6 C7 C8 C9 er rt yt gh iu nk il 0.07 xs yt lr ty bg iu zk nh 0,0005 lt ...etc. I want to replace the comma with full stop only in 8th coloumn. the output... (8 Replies)
Discussion started by: Unilearn
8 Replies

7. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

8. Shell Programming and Scripting

Interesting question - Search and replace the word after sign "="

Hi Guys, Req your help in searching and replacing the word that comes after equals(=) symbol I would like to replace the sting in bold with a string in variable. d=ABCDF8C44C22 # grep -i NIM_MASTERID ${_NIMINFO} export NIM_MASTERID=00CDF8C44C00 I'm looking to replace any word that... (4 Replies)
Discussion started by: ajilesh
4 Replies

9. Shell Programming and Scripting

"find command" to find the files in the current directories but not in the "subdir"

Dear friends, please tell me how to find the files which are existing in the current directory, but it sholud not search in the sub directories.. it is like this, current directory contains file1, file2, file3, dir1, dir2 and dir1 conatins file4, file5 and dir2 contains file6,... (9 Replies)
Discussion started by: swamymns
9 Replies
Login or Register to Ask a Question