Replacing \n,\n with ,


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replacing \n,\n with ,
# 1  
Old 12-10-2008
Replacing \n,\n with ,

Hi everyone,

I've read lots of posts about tr and sed and such, I haven't been able to get out of this one.

I have a file, like this:

Code:
1
,
Jelle

2
,
Sandra

The only thing it needs to do is delete the enter between the number and the name.

So, it needs to replace \n,\n with ,

When I do: tr \n,\n , < test > test3
I get this:

Code:
1
,
Jelle

2
,
Sa,dra

When I do: tr "\n,\n , < test > test3
I get this:

Code:
1
,,
,Jelle
,
,2
,,
,Sandra

And I've tried other variations of the tr command line (and sed, which I found out will never work since it only reads the file one line at a time...)
# 2  
Old 12-10-2008
Code:
#!/bin/ksh
cat file3|while read LINE1
do
	read LINE2
	read LINE3
	read LINE4
	echo "${LINE1}${LINE2}${LINE3}"
done


1,Jellie
2,Sandra

# 3  
Old 12-10-2008
That's a nice workaround, but I'm afraid my source file isn't always as pretty as I thought it was.

Sometimes there's an extra enter, sometimes there's a name which doesn't have another field behind it, so:

Code:
1
,
Jelle

2
,
Sandra

Management

1
,
Peter

2
,
Michel

Advertising

1
,
Linda

And so on, and so on.
# 4  
Old 12-10-2008
Hammer & Screwdriver Does this work?

Code:
> sed "s/[0-9]/~&/" <file104 | tr "\n" " " | tr "~" "\n" | awk '{print $1$2$3}'

1,Jelle
2,Sandra
1,Peter
2,Michel
1,Linda

# 5  
Old 12-10-2008
All the 3 scripts in 1 line, how cool ...

Anyway, it almost worked, except for this line:

7
,
Jurgen,4442

Which gets transformed to

7,Jurgen
4442
# 6  
Old 12-10-2008
Hammer & Screwdriver What do you want to have happen with that line?

Code:
> sed "s/^[0-9]/~&/" <file104 | tr "\n" " " | tr "~" "\n" | awk '{print $1$2$3}'

1,Jelle
2,Sandra
1,Peter
2,Michel
1,Linda
7,Jurgen,4442

Note that I put a ^ inside that sed command; that will lock the data to the beginning of a row (a $ locks to end of a row).
# 7  
Old 12-10-2008
Yet another one:
(use nawk or /usr/xpg4/bin/awk on Solaris)

Code:
awk '$1=$1' RS= ORS='\n\n' infile

data:

Code:
$ cat file
1
,
Jelle

2
,
Sandra

Management

1
,
Peter

2
,
Michel

Advertising

1
,
Linda

output:

Code:
$ awk '$1=$1' RS= ORS='\n\n' file
1 , Jelle

2 , Sandra

Management

1 , Peter

2 , Michel

Advertising

1 , Linda

or:

Code:
$ awk '$1=$1' RS=  file          
1 , Jelle
2 , Sandra
Management
1 , Peter
2 , Michel
Advertising
1 , Linda

A similar with sed:

Code:
$ sed -e '/./{H;$!d;}' -e 'x;s/\n,\n/ , /g'  file

1 , Jelle

2 , Sandra

Management

1 , Peter

2 , Michel

Advertising

1 , Linda


Last edited by radoulov; 12-10-2008 at 11:55 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replacing a value in all xml's

Hi Folks, Could you please advise what will be the unix command to replace the character in all xml's under a particular directory for example let say I rite now at the following below location $ cd /opt/apr/rt/conf now under conf there are so many xml's and in those xml's i want to... (2 Replies)
Discussion started by: punpun66
2 Replies

2. Shell Programming and Scripting

replacing a value in a field

Hi All, I have a file yum.conf that has a field called gpgcheck this field sometimes has a value of 0 gpgcheck=0 and at other times it has a 1. I need to check the value and if it is a 1 change it to a 0 any ideas? thanks, Gartie (1 Reply)
Discussion started by: gartie
1 Replies

3. Shell Programming and Scripting

replacing / to -

Hi, i am running a shell script where i have assigned a variable to the value passed. so my variable is var1="investment/portfolio/run.job" now i want to assign another variable var2 as "investment-portfolio-run.out" how can i do it using awk or something else.... thanks (2 Replies)
Discussion started by: rudoraj
2 Replies

4. UNIX for Dummies Questions & Answers

replacing 1 character with many : tr

Hi All, I would like to know how, iff at all we can, we may use the 'tr' command to replace a single character with multiple characters. eg: if i have a string valued "him", how can i use 'tr' to replace 'i' with "oo" to make "hoom". Just replacing a single character by many. tried:-... (16 Replies)
Discussion started by: hkansal
16 Replies

5. UNIX for Dummies Questions & Answers

Replacing string

Hi there, I'd like to replace STRING_ZERO in FILE_ZERO.txt with the value of VALUEi-th by using something like that: VALUE1=1000 VALUE2=2000 VALUE3=3000 for((i=1;i<=3;i++)); do sed "s/STRING_ZERO/$VALUE'$i'/" FILE_ZERO.txt >> FILE_NEW.txt; done but it doesn't work... Any help... (9 Replies)
Discussion started by: Giordano Bruno
9 Replies

6. Shell Programming and Scripting

Replacing Characters with |

Hi All, example data.log 526569346 66815531961 09 526569346 66815531961 09 526569346 66815531961 09 526569346 66815531961 09 526569346 66815531961 09 I want like this to 526569346|66815531961|09 526569346|66815531961|09... (4 Replies)
Discussion started by: ooilinlove
4 Replies

7. Shell Programming and Scripting

Replacing Characters

Hi All, I have a file which is delimeted with the character '. i need to replace this character with the same character and also a new line. Can anyone please help me with the tr command for this. Many thanks Karan (11 Replies)
Discussion started by: karansachdeva
11 Replies

8. Shell Programming and Scripting

Replacing of word

Hi all, I wanted to replace one word with another word pl help me to solve the same. example:- I wanted to replace RXOTX with RXOTRX in a perticuler file with hole. Regards, Ramesh (2 Replies)
Discussion started by: Ramesh Vellanki
2 Replies

9. Shell Programming and Scripting

replacing using sed

its again sed question. i have line - sed "s/$old/$new/g" "$f" > $TFILE && mv $TFILE "$f" working well if old="myoldfile" new="mynewfile" but if i want old="/home/shailesh/1test/" new="/home/shailesh/workspace/" it gives error like sed: -e expression #1, char 9: unknown option to... (2 Replies)
Discussion started by: shailesh_arya
2 Replies

10. Shell Programming and Scripting

help in replacing ??

hi all i have input file like this abc.txt filename.out: <TAB>ABC<TAB>9 <TAB>AKC<TAB>1 filename1.out: <TAB>XYZ<TAB>1 <TAB>XYN<TAB>4 and i am trying to replace \n\t with \t so that output will be like this: filename.out:<TAB>ABC<TAB>9<TAB>AKC<TAB>1... (5 Replies)
Discussion started by: zedex
5 Replies
Login or Register to Ask a Question