How to substitute in a large gz file?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to substitute in a large gz file?
# 1  
Old 06-22-2010
Data How to substitute in a large gz file?

I have a large .gz file where i wish to replace the occurrence of a particular word with another word.. Can anyone help?I prefer a short script..

Can sed work with gz files?
# 2  
Old 06-22-2010
As far as I know, You have to gunzip the file. since you want to edit the file contents.

gunzip the file.
do your things.
gzip it back.
# 3  
Old 06-22-2010
Quote:
Originally Posted by anchal_khare
As far as I know, You have to gunzip the file. since you want to edit the file contents.

gunzip the file.
do your things.
gzip it back.
That is correct. You can combine the operations in a pipeline though:
Code:
gunzip < file.gz | sed -e 's/search_str/replace_str/g' | gzip -c > temp.gz
mv temp.gz file.gz

This User Gave Thanks to a_programmer For This Post:
# 4  
Old 06-23-2010
this will also work

Code:
gunzip ur_file.gz | awk 's/ur_string/replace_string/g' | gzip -c final.gz
mv final.gz ur_xfile.gz

# 5  
Old 06-23-2010
why gunzip , try using

Code:
gzcat filename.gz | sed 's/MATCH/REPLACE/g' |gzip -c output.gz

# 6  
Old 06-23-2010
Quote:
Originally Posted by busyboy
why gunzip
Because a) it's the same thing, b) people will have it. My system calls it zcat not gzcat, and on closer inspection, it's just a shell script that does exec gunzip -c "$@" . Many systems don't have either. So you're not saving anything by using gzcat and causing more problems.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to substitute a word in multiple file?

Team, I want to change below parameter in all the files in a directory, Check for HOSTNAME=`hostname` Change to HOSTNAME=localhost And I tried below but, its not working ☹ find /tmp -type f -exec sed 's/"HOSTNAME\=\`hostname\`"/"HOSTNAME\=localhost/g'" Help me if I am missing... (6 Replies)
Discussion started by: natraj005
6 Replies

2. UNIX for Beginners Questions & Answers

Substitute particular char in a file

I have a file like this. 1 aaa bcd 1 56 xyz 1 2 ccc rrr 1 25 512 1 1 zaz eee 1 55 511 1 I want to change middle 1's ie after bcd,rrr,eee to 0 where as other 1's should not change. Can you please provide a solution . (5 Replies)
Discussion started by: kshari8888
5 Replies

3. Shell Programming and Scripting

To substitute multiple variable by their content in a file

Dear All, I would like to instantiate a "pattern file" substituting "variable name" by their content. Saying, we have: 1/ a "pattern file" containing different "variable name", the first character of the "variable name" is "@": $ cat TPTModl.txt DEFINE... (12 Replies)
Discussion started by: dae
12 Replies

4. Shell Programming and Scripting

Substitute special Characters into a file

Hi experts :) I need to replace special characters into a file , in the followiing way : " --> "" ' --> '' _--> \_ I tried with the sed command but I'm getting and error ksh: $: not found. ksh: $: not found. sed: Function s/\/\/ cannot be parsed. Any idea ? Thanks , KOLAS... (2 Replies)
Discussion started by: Kolas79
2 Replies

5. UNIX for Dummies Questions & Answers

Help with AWK - Compare a field in a file to lookup file and substitute if only a match

I have the below 2 files: 1) Third field from file1.txt should be compared to the first field of lookup.txt. 2) If match found then third field, file1.txt should be substituted with the second field from lookup.txt. 3)Else just print the line from file1.txt. File1.txt:... (4 Replies)
Discussion started by: venalla_shine
4 Replies

6. Shell Programming and Scripting

Using awk to substitute columns from one file into another

Hi, I am new to this forum and my script skills are very weak. I have this file (file 1) that contains 3 columns (tab delimited): kyle start stop john start stop joe start stop And I want to replace name (column 1) from another file. This other file has two columns, one is the... (4 Replies)
Discussion started by: kylle345
4 Replies

7. UNIX for Dummies Questions & Answers

substitute file name

correct file names are: *_0.txt *_1.txt incorrect file names are: *_12.txt *_0123.txt *_04321.txt all files that are incorrect need to replace the ending with *_1.txt therefore need to create a loop to find the wrong files in a dir ->that dont end in _1.txt or _0.txt and then... (3 Replies)
Discussion started by: sigh2010
3 Replies

8. Shell Programming and Scripting

substitute a line in file

i have an file ,i want to substitute line 003 M 33 22 22 00 WITH NEW 003 M 24 26 28 00 how can i do it (2 Replies)
Discussion started by: RahulJoshi
2 Replies

9. Shell Programming and Scripting

Substitute File name

Hi all I am in a small problem pl help me out. I am having a directory having ZIP files with name starting as : 01.xyz 02.pqr and so on I want to run the script- cat myfile | awk '{print $1, $2}' | while read var1 var2 do zcat $var2* | grep "^000$var1" >> my_output done Where the... (22 Replies)
Discussion started by: vanand420
22 Replies

10. Shell Programming and Scripting

how to substitute more than one word in a text file?

well i have this file here: <XML> <pregate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <system_c>HPREGATE</system_c> <trans_c>HSPG</trans_c> <trans_dt>20060105161333</trans_dt> <user_id_m></user_id_m> <func_c>C</func_c> </pregate> </XML> i want to... (2 Replies)
Discussion started by: forevercalz
2 Replies
Login or Register to Ask a Question