Sponsored Content
Top Forums Shell Programming and Scripting awk - replace number of string length from search and replace for a serialized array Post 302331638 by otrotipo on Monday 6th of July 2009 07:48:09 PM
Old 07-06-2009
awk - replace number of string length from search and replace for a serialized array

Hello,
I really would appreciate some help with a bash script for some string manipulation on an SQL dump:

I'd like to be able to rename "sites/WHATEVER/files" to "sites/SOMETHINGELSE/files" within the sql dump.
This is quite easy with sed:
Code:
sed -e 's#sites/[a-zA-Z0-9]*/files#sites/SOMETHINGELSE/files#g' dump.sql > dump_manipulated.sql

ok, my problem is that some of these strings are within an serialized array (from php) and some not.

see part of the sql dump:
Code:
INSERT INTO `variable` VALUES ('color_garland_logo','s:51:\"sites/default/files/color/garland-db56b801/logo.png\";');
INSERT INTO `variable` VALUES ('color_garland_stylesheets','a:2:{i:0;s:52:\"sites/default/files/color/garland-db56b801/style.css\";i:1;s:56:\"sites/default/files/color/garland-db56b801/style-rtl.css\";}');
INSERT INTO `menu_router` VALUES ('sites/default/files/imagecache','','','1','a:0:{}','imagecache_cache','a:0:{}',15,4,'','sites/default/files/imagecache','','t','',4,'','','',0,'');


The ones that are within the serialized arrays have something like s:51: before the actual string. the number refers itself to the length of the following string. When changing the string usually the length changes as well and php doesn't let me unserialize the array properly.

I guess that I'd need to write some lines with awk to count on the new string and to overwrite the number. But I doesn't really have a clue about awk. Is there a friendly person that would help me out?

Thank you,
Michael
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace variable length numeric string

I have a customer who logged some cc and bank account numbers in their apache logs. I got the cc numbers x'd out with sed -e 's/args=\{16\}/args=XXXXXXXXXXXXXXXX/g' -e 's/cardnum=\{16\}/cardnum=XXXXXXXXXXXXXXXX/g'but that wasn't too difficult due to the value being 16 digits. The bank account... (7 Replies)
Discussion started by: mk4mzid
7 Replies

2. Shell Programming and Scripting

search and replace fixed length record file

Hi I need to be search a file of fixed length records and when I hit a particular record that match a search string, substitute a known position field In the example file below FHEAD000000000120090806143011 THEAD0000000002Y0000000012 P00000000000000001234 TTAIL0000000003... (0 Replies)
Discussion started by: nedkelly007
0 Replies

3. Shell Programming and Scripting

Search and replace particular characters in fixed length-file

Masters, I have fixed length input file like FHEAD0000000001XXXX20090901 0000009000Y1000XXX2 THEAD000000000220090901 ITM0000109393813 430143504352N22SP 000000000000RN000000010000EA P0000000000000014390020090901 TTAIL0000000003000000 FTAIL00000000040000000002 Note... (4 Replies)
Discussion started by: bittoo
4 Replies

4. UNIX for Advanced & Expert Users

Search and replace a number

a=`grep -i a.sh filename.sh|cut -d "|" -f4` b=`expr $a + 1` filename=`grep -i a.sh filename.sh` while read line do echo $line echo $filename if then echo "entered if" nawk ' BEGIN { FS="|"; OFS="|" } { sub('$a', '$b', $4) print $0}' filename.sh fi echo "exit if" done <... (1 Reply)
Discussion started by: hs.giri
1 Replies

5. Shell Programming and Scripting

awk/sed string search and replace

Need help with either sed or awk to acheive the following file1 ----- In the amazon forest The bats eat all the time... mon tue wed they would eat berries In the tropical forest The bats eat all the time... on wed bats eat nuts In the rain forest The bats eat all the time... on... (2 Replies)
Discussion started by: jville
2 Replies

6. Shell Programming and Scripting

How to use SED or AWK to search and replace an exact string

I have a file DS1 DDS DS I want to replace only "DS" to "DSmail.blah.com" in a lot of files. I tried sed 's/DS/DSmail.blah.com' but it changes all the lines . thanks in advance (2 Replies)
Discussion started by: gubbu
2 Replies

7. Shell Programming and Scripting

awk + gsub to search multiple input values & replace with located string + extra text

Hi all. I have the following command that is successfully searching for any one of the strings on all lines of a file and replacing it with the instructed value. cat inputFile | awk '{gsub(/aaa|bbb|ccc|ddd/,"1234")}1' > outputFile This does in fact replace any occurrence of aaa, bbb,... (2 Replies)
Discussion started by: dazhoop
2 Replies

8. UNIX for Advanced & Expert Users

Search and replace a array values in perl

Hi, i want to search and replace array values by using perl perl -pi -e "s/${d$i]}/${b$j]}" *.xml i am using while loop for the same. if i excute this,it shows "Substitution replacement not terminated at -e line 1.". please tell me what's wrong this line (1 Reply)
Discussion started by: arindam guha
1 Replies

9. Shell Programming and Scripting

Need to replace 32 length string to *****

Hello, I've a file file_1.txt ul.ln = 'Kb' AND (il.sum = 'ec7ccc92585adac28d9b1fb5eff0473f' or length('ec7ccc92585adac28d9b1fb5eff0473f') = 7); il.sum = '20ddc1368d588dd0b0e37c41721e05b1' OR length('20ddc1368d588dd0b0e37c41721e05b1') = 7); I need to replace the file like below - ul.ln... (4 Replies)
Discussion started by: Mannu2525
4 Replies

10. UNIX for Beginners Questions & Answers

sed inside the awk script to replace a string in the array

The requirement is i need to find an array value matching with pattern {5:{ , replace that with 5: and reassign that to same array index and print it. I write something like below and the issue is sed command is not working. If i replace " with "`" the script gives syntax error.how can i... (8 Replies)
Discussion started by: bhagya123
8 Replies
IO
::FILE=IO(0X103FE58)(8) User Contributed Perl Documentation IO::FILE=IO(0X103FE58)(8) NAME
send-uucp - Send Usenet articles via UUCP SYNOPSIS
send-uucp [SITE ...] DESCRIPTION
The send-uucp program processes batch files written by innd(8) to send Usenet articles to UUCP sites. It reads a configuration file to control how it behaves with various sites. Normally, it's run periodically out of cron to put together batches and send them to remote UUCP sites. OPTIONS
Any arguments provided to the program are interpreted as a list of sites specfied in send-uucp.cf for which batches should be generated. If no arguments are supplied then batches will be generated for all sites listed in that configuration file. CONFIGURATION
The sites to which articles are to be sent must be configured in the configuration file send-uucp.cf. Each site is specified with a line of the form: site[:host] [compressor [maxsize [batchtime]]] site The news site name being configured. This must match a site name from newsfeeds(5). host The UUCP host name to which batches should be sent for this site. If omitted, the news site name will be used as the UUCP host name. compressor The compression method to use for batches. This should be one of compress, gzip or none. Arguments for the compression command may be specified by using "_" instead of spaces. For example, "gzip_-9". The default value is "compress". maxsize The maximum size of a single batch before compression. The default value is 500,000 bytes. batchtime A comma separated list of hours during which batches should be generated for a given site. When send-uucp runs, a site will only be processed if the current hour matches one of the hours in batchtime. The default is no limitation on when to generate batches. Fields are seperated by spaces and only the site name needs to be specified, with defaults being used for unspecified values. If the first character on a line is a "#" then the rest of the line is ignored. EXAMPLE
Here is an example send-uucp.cf configuration file: zoetermeer gzip 1048576 5,18,22 hoofddorp gzip 1048576 5,18,22 pa3ebv gzip 1048576 5,18,22 drinkel gzip 1048576 5,6,18,20,22,0,2 manhole compress 1048576 5,18,22 owl compress 1048576 able This defines seven UUCP sites. The first four use gzip compression and the last three use compress. The first six use a batch size of 1MB, and the last site (able) uses the default of 500,000 bytes. The zoetermeer, hoofddorp, pa3ebv, and manhole sites will only have batches generated for them during the hours of 05:00, 18:00, and 22:00, and the drinkel site will only have batches generated during those hours and 20:00, 00:00, and 02:00. There are no restrictions on when batches will be generated for owl or able. FILES
pathetc/send-uucp.cf Configuration file specifying a list of sites to be processed. NOTES
The usual flags used for a UUCP feed in the newsfeeds file are "Tf,Wfb". SEE ALSO
innd(8), newsfeeds(5), uucp(8) AUTHOR
This program was originally written by Edvard Tuinder <ed@elm.net> and then maintained and extended by Miquel van Smoorenburg <miquels@cistron.nl>. Marco d'Itri <md@linux.it> cleaned up the code for inclusion in INN. This manual page was written by Mark Brown <broonie@sirena.org.uk>. perl v5.14.2 2012-06-29 IO::FILE=IO(0X103FE58)(8)
All times are GMT -4. The time now is 07:16 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy