sed to remove all whitespace from a line

19,227

You should use the g (global) flag, which makes sed act on all matches of the pattern on each line, rather than the first match on each line:

sed 's/ //g' test.txt > test2.txt
Share:
19,227

Related videos on Youtube

DavidPostill
Author by

DavidPostill

Updated on September 17, 2022

Comments

  • DavidPostill
    DavidPostill over 1 year

    I want to use sed to remove all space characters from a text file. At present I am using this command:

    sed 's/ //' test.txt > test2.txt
    

    This works in the sense that it removes the first space character of each line but leaves the rest.

    Is there a way to tell sed to repeat for a space characters on a line before moving on to the next or is it a case of scripting multiple run thoughs on the same file?

    At present the file is small for testing but soon this will be ramped up on to much larger files so minimum rinse and repeat would be great. Any thoughts?

    At present I get this using the command above:

    bruteforce  
    allthe kings men  
    moneymoney money  
    ifi was a rich girl
    

    When what I would like is this:

    bruteforce  
    allthekingsmen  
    moneymoneymoney  
    ifiwasarichgirl  
    
  • ben_wing
    ben_wing almost 14 years
    Excellent! What does the g do? Is it a repeat for all instance on a line switch or something?
  • jmz
    jmz almost 14 years
    Yes, the g flag makes the regex match globally. Without it, it matches only the first one.