文件1:
hello
world
如何将一个删除使用SED这个文件中的前/后空格- 使用一个命令(无中间文件)?
我目前有:
sed -e 's/^[ \t]*//' a > b
对于前导空格。
sed 's/ *$//' b > c
这对于尾部的空格。
文件1:
hello
world
如何将一个删除使用SED这个文件中的前/后空格- 使用一个命令(无中间文件)?
我目前有:
sed -e 's/^[ \t]*//' a > b
对于前导空格。
sed 's/ *$//' b > c
这对于尾部的空格。
你几乎得到它:
sed -e 's/^[ \t]*//;s/[ \t]*$//' a > c
而且对一些口味sed
,还有编辑内嵌一个选项:
sed -i -e 's/^[ \t]*//;s/[ \t]*$//' a
更简单的方法,用awk
awk '{$1=$1}1' file
要么
awk '{gsub(/^ +| +$/,"")}1' file
perl -lape 's/^\s+|\s+$//g'
老实说,我知道Perl的正则表达式是最好的,所以我觉得perl -lape
但更易于使用sed -e
。
此外,要回答原来的问题,你可以用sed执行这样的多个操作:
sed -e 's/something/something else/' -e 's/another substitution/another replacement/'
显然,你也可以把两个换人的一个字符串,并用分号,单独作为在另一个答复中指出。
注意,在一排的输入文件应用几个过滤器,而不使用中间文件的更一般的情况下,该解决方案是使用管道:
sed -e 's/^[ \t]*//' a | sed -e 's/ *$//' > c
显然,这里不再必需的,因为sed的一个调用就足够了,但如果第二次中美战略经济对话的命令是不同的东西,喜欢的uniq或排序,那么这种模式是正确的。