Use sed to delete all leading/following blank spaces in a text file

后端 未结 4 1961
小蘑菇
小蘑菇 2020-12-16 02:04

File1:

  hello  
  world  

How would one delete the leading/trailing blank spaces within this file using sed - using one command (n

相关标签:
4条回答
  • 2020-12-16 02:23
    perl -lape 's/^\s+|\s+$//g'
    

    Honestly, I know perl regexps the best, so I find perl -lape much easier to use than sed -e.

    Also, to answer the original question, you can have sed execute multiple operations like this:

    sed -e 's/something/something else/' -e 's/another substitution/another replacement/'
    

    Apparently you can also put the two substitutions in one string and separate them with a semicolon, as indicated in another answer.

    0 讨论(0)
  • 2020-12-16 02:24

    easier way, using awk

    awk '{$1=$1}1' file
    

    or

    awk '{gsub(/^ +|  +$/,"")}1' file
    
    0 讨论(0)
  • 2020-12-16 02:32

    You almost got it:

    sed -e 's/^[ \t]*//;s/[ \t]*$//' a > c
    

    Moreover on some flavours of sed, there is also an option for editing inline:

    sed -i -e 's/^[ \t]*//;s/[ \t]*$//' a
    
    0 讨论(0)
  • 2020-12-16 02:42

    Note that in the more general case of applying several filters in a row to an input file without using intermediate files, the solution is to use pipes:

    sed -e 's/^[ \t]*//' a | sed -e 's/ *$//' > c
    

    Obviously they are not required here because one invocation of sed is sufficient, but if the second sed command was something different, like uniq or sort, then this pattern is the right one.

    0 讨论(0)
提交回复
热议问题