结合SED命令

时间:2014-06-30 17:34:21

标签: linux shell sed

将sed命令合并为一个命令

我目前正在执行这两个命令

删除每行的第一个字符

sed -i 's/\(.\{1\}\)//'                                      

删除每行中的额外空格

sed -i 's/    / /g'                                                 

它正在解析的237GB文件中有3.4亿条行,我不希望它需要运行两次。

3 个答案:

答案 0 :(得分:2)

下面的sed命令将两者结合起来。使用;作为分隔符来组合两个sed操作。

sed -i 's/\(.\{1\}\)//;s/    / /g' file

答案 1 :(得分:2)

另一种方式:

sed  -i -e 's/\(.\{1\}\)//' -e 's/    / /g'  file

答案 2 :(得分:1)

您可以尝试awk

awk '{sub(/./,"");$1=$1}1' file

sub(/./,"")删除第一个字符
$1=$1删除所有双倍空格。