如何使用sed从多个文件中删除列?

时间:2013-03-29 08:20:34

标签: perl sed

如何使用sed从多个文件中删除列?

输入

1    2.1    3.3   4.2    5.1

输出

3.3   4.2    5.1

如果输出将对齐将是好的。

4 个答案:

答案 0 :(得分:1)

单向(输出以制表符分隔):

perl -lane'print join "\t",@F[2..$#F]' file

对于右对齐输出:

perl -lane'printf "%10s",$_ for @F[2..$#F];print "";' file

答案 1 :(得分:1)

使用sed删除前两列:

sed 's/^[ \t]*[0-9.]*[ \t]*[0-9.]*[ \t]*//' input1 input2

如果要删除更多列,可以增加[ \t]*[0-9.]*的数量。

答案 2 :(得分:1)

awk也可以这样做,允许你轻松切换列,并在需要时更改输入和输出中的分隔符:

awk '{print $3,$4,$5}' test
3.3 4.2 5.1

希望有所帮助

答案 3 :(得分:0)

awk '{$1=$2="";gsub("^  ","",$0);}1' your_file

perl -lane 'print "@F[2..scalar(@F)]"' your_file