Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Can someone provide a simple one-liner to remove certain line breaks?

In vim I use %s/,\n]/]/g

This should be possible with a very simple one-liner IMHO, but how?

share|improve this question
    
First remove newlines, then use sed. tr -d '\r\n' | sed -e "s/,\n]/]/g" But now everything is on one long line ? –  Bastl Feb 9 '12 at 9:31
4  
"Certain linebreaks"? Which ones? –  m0skit0 Feb 9 '12 at 9:40
    
those that occur in the pattern, i.e. surrounded by , and ] –  Bastl Feb 10 '12 at 12:01
    
I can post an answer using Perl if you're interested. –  m0skit0 Feb 10 '12 at 12:07
    
yes, pls, anything is appreciated, though perl is not at all my favourite ... :-) –  Bastl Feb 10 '12 at 12:14

3 Answers 3

This should work:

perl -e "$_ = join('', <>); s/,\n]/,]/g; print;" < input_file > output_file
share|improve this answer
    
aii, that's a long one-liner, the actual vim command is so simple ... –  Bastl Feb 10 '12 at 13:34
1  
Who cares? It works... The problem actually is the file input (<>). I have to convert the resulting array read from the file to a single line to process ($_ = join('', <>);) because file is splitted precisely by "\n". If anyone knows how to read a file in one single scalar, I'd be glad to modify it into something shorter. –  m0skit0 Feb 10 '12 at 13:40
1  
*** If anyone knows how to read a file in one single scalar local $/ = undef;$string = <FILE>; –  YordanGeorgiev Nov 5 '12 at 19:41
    
I learned it in the meantime, but thanks anyway :) –  m0skit0 Nov 5 '12 at 22:45

This might work for you:

sed ':a;$!{N;ba};s/,\n]/]/g' file

or this:

sed 'N;s/,\n]/]/;P;D' file
share|improve this answer

multiline replace for all *.c files

perl -p -i.bak -e 's#to_find\n\n#to_replace#g' *.c

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.