Swapping strings in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Swapping strings in a file
# 1  
Old 01-20-2010
Swapping strings in a file

Hi,

How to swap two strings in a file ?
Ex: "ABC" to be swapped with "XYZ"
"ABC" and "XYZ" donot occur in a same line .
String has ""

Regards
Tej
# 2  
Old 01-20-2010
Quote:
Originally Posted by tej_89
Hi,

How to swap two strings in a file ?
Ex: "ABC" to be swapped with "XYZ"
"ABC" and "XYZ" donot occur in a same line .
String has ""

Regards
Tej
Usually you could use sed or perl. If you have GNU sed which has the -i flag, you could use sed. Else perl is good.
Code:
sed -i -e "s/ABC/XYZ/g"
perl -p -i -e "s/ABC/XYz/g"

# 3  
Old 01-20-2010
Quote:
Originally Posted by tej_89
Hi,

How to swap two strings in a file ?
Ex: "ABC" to be swapped with "XYZ"
"ABC" and "XYZ" donot occur in a same line .
String has ""

Regards
Tej
Give an example atleast ...
# 4  
Old 01-20-2010
Example is ,
I have a file test.txt, in which I need to swap "ABC" with "XYZ". I cannot use replace because I still have to retain both the strings in the same file.

File looks like this:
Code:
"DEF", "678", "ABC", "GHI", "KLM", ...."123",
"345", XYZ", "MNO", "PQR",

I need to swap "ABC" with "XYZ"

Regards
Tej

---------- Post updated at 04:12 AM ---------- Previous update was at 03:48 AM ----------

I tried using perl -p -i -e "s/ABC/XYz/g" test.txt in the command line. Command is replacing but not swapping these two strings

Last edited by Franklin52; 01-20-2010 at 05:00 AM.. Reason: Please use code tags!
# 5  
Old 01-20-2010
try this

Code:
 
$ cat inf
"DEF", "678", "ABC", "GHI", "KLM", ...."123",
"345", XYZ", "MNO", "PQR",

$ cat inf | sed 's/ABC/TMP/g;s/XYZ/ABC/g;'| sed 's/TMP/XYZ/g'
"DEF", "678", "XYZ", "GHI", "KLM", ...."123",
"345", ABC", "MNO", "PQR",

# 6  
Old 01-20-2010
I tried using this command, swapping is still not happening.
File is unchanged
# 7  
Old 01-20-2010
a simple & ugly method of doing it, which may only work for the given example.

Code:
18:18:33 : tmp :cat > t
"DEF", "678", "ABC", "GHI", "KLM", ...."123",
"345", XYZ", "MNO", "PQR",
18:18:47 : tmp :cat t
"DEF", "678", "ABC", "GHI", "KLM", ...."123",
"345", XYZ", "MNO", "PQR",
18:18:49 : tmp :perl -i t.pl t
18:18:53 : tmp :cat t
"DEF", "678", "XYZ", "GHI", "KLM", ...."123",
"345", ABC", "MNO", "PQR",
18:18:55 : tmp :cat t.pl
undef $/;

$_=<>;

s/(ABC)(.*)(XYZ)/\3\2\1/s;
print;

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

(g)awk: Matching strings from one file in another file between two strings

Hello all, I can get close to what I am looking for but cannot seem to hit it exactly and was wondering if I could get your help. I have the following sample from textfile with many thousands of lines: File 1 PS001,001 HLK PS002,004 L<G PS004,002 XNN PS004,006 BVX PS004,006 ZBX=... (7 Replies)
Discussion started by: jvoot
7 Replies

2. UNIX for Beginners Questions & Answers

Use strings from nth field from one file to match strings in entire line in another file, awk

I cannot seem to get what should be a simple awk one-liner to work correctly and cannot figure out why. I would like to use patterns from a specific field in one file as regex to search for matching strings in the entire line ($0) of another file. I would like to output the lines of File2 which... (1 Reply)
Discussion started by: jvoot
1 Replies

3. UNIX for Beginners Questions & Answers

How to pass strings from a list of strings from another file and create multiple files?

Hello Everyone , Iam a newbie to shell programming and iam reaching out if anyone can help in this :- I have two files 1) Insert.txt 2) partition_list.txt insert.txt looks like this :- insert into emp1 partition (partition_name) (a1, b2, c4, s6, d8) select a1, b2, c4, (2 Replies)
Discussion started by: nubie2linux
2 Replies

4. Shell Programming and Scripting

Match list of strings in File A and compare with File B, C and write to a output file in CSV format

Hi Friends, I'm a great fan of this forum... it has helped me tone my skills in shell scripting. I have a challenge here, which I'm sure you guys would help me in achieving... File A has a list of job ids and I need to compare this with the File B (*.log) and File C (extend *.log) and copy... (6 Replies)
Discussion started by: asnandhakumar
6 Replies

5. Shell Programming and Scripting

Swapping of fields in file

Hi Friends , I have file1.txt 1|b|46|123|47673|348738 2|c|63|124|7346|4783 3|y|45|125|5555|78789 output should swap the 4th field to the first field. output 123|1|b|46|47673|348738 124|2|c|63|7346|4783 125|3|y|45|5555|78789 (3 Replies)
Discussion started by: i150371485
3 Replies

6. UNIX for Dummies Questions & Answers

Swapping the columns of a text file for a subset of rows

Hi, I'd like to swap the columns 1 and 2 of a space-delimited text file but only for the first 1000 rows. How do I go about doing that? Thanks! (1 Reply)
Discussion started by: evelibertine
1 Replies

7. Shell Programming and Scripting

Extract two strings from a file and create a new file with these strings

I have the following lines in a log file. It would be great if some one can help me to create a new file with the just entries in the below format. 66.150.161.195 HPSAC=Z05 66.150.161.196 HPSAC=A05 That is just extract the IP address and the string DPSAC=its value 66.150.161.195 -... (1 Reply)
Discussion started by: Tuxidow
1 Replies

8. Shell Programming and Scripting

Delete lines in file containing duplicate strings, keeping longer strings

The question is not as simple as the title... I have a file, it looks like this <string name="string1">RZ-LED</string> <string name="string2">2.0</string> <string name="string2">Version 2.0</string> <string name="string3">BP</string> I would like to check for duplicate entries of... (11 Replies)
Discussion started by: raidzero
11 Replies

9. Shell Programming and Scripting

Swapping IP Addresses In A File With Those From Another File

Hello, I'm looking for a way to change the IP addresses in a large host file with those of matching hostnames in another file. For example, I have a file with file1 contains lines like: 192.168.0.55 hostname hostname.network.lan 192.168.0.52 junkhost junkhost.network.dev... (2 Replies)
Discussion started by: PointyWombat
2 Replies

10. Shell Programming and Scripting

Swapping of fields in a file

Hi I have afile with 15fields,say f1,f2....f15 delimited on comma. How can i swap the f1,f15 fields using unix shell commands or any script? Thanks (3 Replies)
Discussion started by: ksailesh
3 Replies
Login or Register to Ask a Question