I have this text file. I want to replace the occurence of a string by newline. Lets say I have this string test. I want to replace every occurence of this string by a newline. How can I do it in the shell
            Asked
            
        
        
            Active
            
        
            Viewed 72 times
        
    1 Answers
1
            
            
        If you use sed:
sed 's/abc/\n/' inupt.txt > output.txt
Suppose input.txt contains:
abc helo
a b c
You will end up with:
[newline]
  helo
a b c
Tested on Ubuntu 13.10 with sed 4.2, bash 4.2.
 
    
    
        gongzhitaao
        
- 6,566
- 3
- 36
- 44
- 
                    It replaces abc by n not newline – user34790 Dec 02 '13 at 23:36
- 
                    @user34790 Are we using the same `bash` or the same `sed`? Or did you forget the backslash? or single quote? It works fine on my machine :) – gongzhitaao Dec 02 '13 at 23:37
- 
                    @user34790 Might this [post](http://stackoverflow.com/questions/4247068/sed-command-failing-on-mac-but-works-on-linux) be of some help? This works on Ubuntu. I don't know about Mac. If it dosen't work, maybe just use some editor on Mac, do find and replace :) – gongzhitaao Dec 02 '13 at 23:43
- 
                    1If you are using `bash`, use `sed $'/abc/\n/' input.txt > output.txt` to guarantee that `sed` gets a newline, whether or not `sed` itself understands `\n` to be a newline. – chepner Dec 02 '13 at 23:46
- 
                    @user34790 Another reason to forget about Mac if I want Linux. Thanks for your response on Mac :P – gongzhitaao Dec 02 '13 at 23:48
- 
                    @chepner Are you sure that syntax works? – gongzhitaao Dec 02 '13 at 23:52
- 
                    Oops. `sed` still needs the newline itself escaped, so it should be `sed $'/abc/\\\n/'`, so that `sed` sees `\` + `` as the replacement text. – chepner Dec 02 '13 at 23:56
- 
                    @chepner Sorry, but it's still not working on my machine. – gongzhitaao Dec 02 '13 at 23:59
