Swapping three lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Swapping three lines
# 8  
Old 09-20-2010
You saw the error because you did not terminate the first line of your command with a \
# 9  
Old 09-20-2010
no, backslash doesn't help:
Code:
dsjkvf on Penelope @ ~/tmp/devel> cat data 
<date>some_date</date>
<text>some_text</text>
<name>some_name</name>
dsjkvf on Penelope @ ~/tmp/devel> echo data | sed 's/<text>\(.*\)<\/text>\
<name>\(.*\)<\/name>/\2 - \1/'
sed: 1: "s/<text>\(.*\)<\/text>\ ...": unterminated substitute pattern

# 10  
Old 09-20-2010
Hmm, I get:
Code:
$ cat data
  <date>some_date</date>
  <text>some_text</text>
    <name>some_name</name>
$ cat data | sed 's/<text>\(.*\)<\/text>\
<name>\(.*\)<\/name>/\2 - \1/'
  <date>some_date</date>
  <text>some_text</text>
    <name>some_name</name>
$ cat data| sed 's/<text>\(.*\)<\/text>
<name>\(.*\)<\/name>/\2 - \1/'
sed: -e expression #1, char 22: unterminated `s' command

So no error message. Are you on Solaris?
Is the backslash the last character on the line?
# 11  
Old 09-20-2010
I'm on Mac OS X 10.5.8 Smilie.

however, if I use GNU sed version 4.1.5 (from ports) then, yes, it works without errors, but also without any results, I'd say: the sed command above we were testing should output:
Code:
some_name - some_text

, but it just prints the contents of the file 'data' without applying any filters.

where am I wrong?
# 12  
Old 09-20-2010
Hi, as I wrote in my first post, this command would not work since sed is line based, you would have to join the next lines with the N command (I gave an example).
# 13  
Old 09-20-2010
so, as I supposed after your first answer, it seems that it just can't use a two-line search pattern, but can only operate split lines as a substitute pattern.
# 14  
Old 09-21-2010
Quote:
my $cnt=0;
while(<DATA>){
if(/>(.*)</){
push @arr, $1;
$cnt++;
}
if($cnt==3){
print $arr[2]," ",$arr[1],":",$arr[0],"\n";
$cnt=0;
@arr=();
}
}
__DATA__
<date>some_date</date>
<text>some_text</text>
<name>some_name<name>
<date>some_date</date>
<text>some_text</text>
<name>some_name<name>
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Swapping lines

Hi there, I have a text that I'm trying to format into something more readable. However, I'm stuck in the last step. I've searched and tried things over the internet with no avail. OS: Mac After parsing the original text that I won't put here, I managed to get something like this, but this... (8 Replies)
Discussion started by: Kibou
8 Replies

2. Solaris

Swapping

Hi Guys I am using SPARC-T4 (chipid 0, clock 2998 MHz), SunOS 5.10 Generic_150400-38 sun4v. How do I see if the server was doing some swapping like yesterday? I had a java application error with java.lang.OutOfMemoryError, now I want to check if the server was not doing some swapping at... (4 Replies)
Discussion started by: Phuti
4 Replies

3. Shell Programming and Scripting

Swapping the 1st 4 lines only

How can you swap the first 4 line only, the rest will stay the same. thanks #!/bin/sh line=4 awk -v var="$line" 'NR==var { s=$0 getline;s=$0"\n"s getline;print;print s next }1' fileko.tx . desired output: (8 Replies)
Discussion started by: invinzin21
8 Replies

4. Shell Programming and Scripting

Swapping fields

Hallo Team, This is the command that i am running : grep ",Call Forward Not Reachable" *2013* this is the output that i am getting (i did a head -10 but the files can be more than 1000) ... (8 Replies)
Discussion started by: kekanap
8 Replies

5. Shell Programming and Scripting

AWK swapping fields on different lines

Hi All, Sorry if this question has been posted elsewhere, but I'm hoping someone can help me! Bit of an AWK newbie here, but I'm learning (slowly!) I'm trying to cobble a script together that will save me time (is there any other kind?), to swap two fields (one containing whitespace), with... (5 Replies)
Discussion started by: Bravestarr
5 Replies

6. Shell Programming and Scripting

swapping lines that match a condition using sed, perl or the like

I'm a bit new to regex and sed/perl stuff, so I would like to ask for some advice. I have tried several variations of scripts I've found on the net, but can't seem to get them to work out just right. I have a file with the following information... # Host 1 host 45583 { filename... (4 Replies)
Discussion started by: TheBigAmbulance
4 Replies

7. Shell Programming and Scripting

Swapping lines beginning with certain words using sed/awk

I have a large file which reads like this: fixed-address 192.168.6.6 { hardware ethernet 00:22:64:5b:db:b1; host X; } fixed-address 192.168.6.7 { hardware ethernet 00:22:64:5b:db:b3; host Y; } fixed-address 192.168.6.8 { hardware ethernet 00:22:64:5b:db:b4; host A; }... (4 Replies)
Discussion started by: ksk
4 Replies

8. Shell Programming and Scripting

Swapping or switching 2 lines using sed

I made a script that can swap info on two lines using a combination of awk and sed, but was hoping to consolidate the script to make it run faster. If found this script, but can't seem to get it to work in a bash shell. I keep getting the error "Too many {'s". Any help here would be appreciated:... (38 Replies)
Discussion started by: LaTortuga
38 Replies

9. SuSE

Swapping

Hello! Why does my SuSE GNU/Linux machine swap? I have a Gig of ram, currently 14MBs of free RAM, 724MB - buffers and caches... That is 685MB of cached RAM, then kernel really should'nt have to swap, It should release cached memory in my thinkin... It has only swaped 3MB's but still,... (3 Replies)
Discussion started by: Esaia
3 Replies

10. UNIX for Dummies Questions & Answers

Swapping questions

How can you tell how much a Solaris box is swapping? At what point do page in and page out become a problem? Here is a vmstat output. > vmstat procs memory page disk faults cpu r b w swap free re mf pi po fr de sr m0 m1 m2 m3 in sy cs us sy id... (1 Reply)
Discussion started by: 98_1LE
1 Replies
Login or Register to Ask a Question