Simple? Search replace


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Simple? Search replace
# 1  
Old 01-15-2004
Simple? Search replace

in vi, if i type ctrl-J, i can shift the next line up to the current line.
I need to do this whenever a specific string exists (in particular ^M) ,however i have not been able to find a way to do this in vi, sed, or awk

seems simple enough.

can someone help me?

thanks in advance
# 2  
Old 01-15-2004
You must mean shift-J, not control J.

In vi you can do this:
:g/^M/j

But to type the ^M, you need to type cntl-V followed by cntl-M.
# 3  
Old 01-15-2004
thanks, but it does not join all of the ^Ms

240|^M\
^M\
^M\
Old Port Marketing order recd $62,664.- to ship 6/22/99^M\
^M\
^M\
^M\
^MCompleted by: C. Malczynski|


becomes:

240|^M\ ^M\
^M\ Old Port Marketing order recd $62,664.- to ship 6/22/99^M\
^M\ ^M\
^M\ ^MCompleted by: C. Malczynski|

but should be:

240|^M\ ^M\^M\ Old Port Marketing order recd $62,664.- to ship 6/22/99^M\^M\ ^M\^M\ ^MCompleted by: C. Malczynski|


this is what i typed :g/^M\\/j ----- (ctrl-V, ctrl-M)


any suggestions??

p.s. thanks, this has been stumping me for awhile

Last edited by Brandt; 01-15-2004 at 04:50 PM..
# 4  
Old 01-15-2004
:g/^M\\$/j
and run the command a 2nd or third time until no more trailing ^M\ remain.
# 5  
Old 01-15-2004
thanks, this has been really helpful, but i need to run this on several files that have >1000000 records, which i can break down into smaller files if need be (migrating data in case you haven't guessed), hence the reason i was trying to find a one time fell swoop, the solution you provided is much better than me scrolling for ^M and hitting Shft-J five or six times, but also doesn't lend itself to being run unattended, do you know of a way to peform the same task with sed?

if not, the help you have given me has been great, and i appreciate your quick responses.

thanks again
# 6  
Old 01-15-2004
This is a sed script. It does not use a shell. You must get all 11 lines exactly as I have them.
Code:
#! /usr/bin/sed -nf
#
#
s/^M\\$/^M\\/
H
t
x
s/\n//g
p
s/.*//
h

Call it combiner or something. Run it like:
combiner < oldfile > newfile
# 7  
Old 01-16-2004
The paste command can be used for serial merging, e.g...
Code:
paste -s -d'' file1 > file2

 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Nested search in a file and replace the inner search

Hi Team, I am new to unix, please help me in this. I have a file named properties. The content of the file is : ##Mobile props east.url=https://qa.east.corp.com/prop/end west.url=https://qa.west.corp.com/prop/end south.url=https://qa.south.corp.com/prop/end... (2 Replies)
Discussion started by: tolearn
2 Replies

2. Shell Programming and Scripting

Simple awk search problem

Hello; we have : awk '/reg_exp/,0/ prints every line after the first occurrence of "reg_exp" But if I want to print rest of the lines AFTER the last occurrence of "reg_exp", how would I do it ?? Tried : awk ' ! (/reg_exp/,0)' But it errored... Thank you for any... (5 Replies)
Discussion started by: delphys
5 Replies

3. Shell Programming and Scripting

How to do a simple awk search?

Hello I am trying to do global search on access log files for a date and for either 'Error|error' string ls -lrt *access* | grep "Sep 23" | awk '{print $9}'|xargs awk '/23\/Sep\/2011/ && /Error/ || /error' Above matches All lines with 'error' as well unfortunately. Is there a... (6 Replies)
Discussion started by: delphys
6 Replies

4. Shell Programming and Scripting

Simple (not for me) string search script

hi there, I am a complete newb to bash but am going to try and make a script to help me seach text files for strings of interest, any help that one of you gurus could pass on will be greatly received!! I want to write something like: in "text1.txt" find "string1" and copy out the line... (7 Replies)
Discussion started by: jumbo999
7 Replies

5. UNIX for Dummies Questions & Answers

Simple search pattern help

Hi I need to define a pattern that will match an open square bracket, a series of numbers fro 1 to 4 digits in length and a close square bracket. Examples of the numbers I will need to find are: or or or I am using BBEdit to search, and BBEdit uses the standard GREP search... (1 Reply)
Discussion started by: alisamii
1 Replies

6. Shell Programming and Scripting

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: sed -e... (1 Reply)
Discussion started by: otrotipo
1 Replies

7. Shell Programming and Scripting

Perl: Search for string on line then search and replace text

Hi All, I have a file that I need to be able to find a pattern match on a line, search that line for a text pattern, and replace that text. An example of 4 lines in my file is: 1. MatchText_randomNumberOfText moreData ReplaceMe moreData 2. MatchText_randomNumberOfText moreData moreData... (4 Replies)
Discussion started by: Crypto
4 Replies

8. UNIX for Dummies Questions & Answers

Too simple to search for

Hey. I'm just getting started with scripting and although i will admit i haven't searched the forum yet, i think it would be a waste of time. It really will be very simple. I want to enter a list of arguments after my script with the last being the filename. (not the first, as this is part of... (3 Replies)
Discussion started by: spudtheimpaler
3 Replies

9. Shell Programming and Scripting

Simple Search and Replace - Revisited

I have a ascii file with lines like this: 240|^M\ ^M\^M\ Old Port Marketing order recd $62,664.- to ship 6/22/99^M\ when this record gets loaded into my database, the \ is stored literally and so the user sees carriage return \ (hex 0D 5C) when what i need is carriage return line feed (hex 0D... (1 Reply)
Discussion started by: Brandt
1 Replies
Login or Register to Ask a Question