0

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

输入

1    2.1    3.3   4.2    5.1

输出

3.3   4.2    5.1

如果输出对齐就好了。

4

4 回答 4

1

一种方式(输出以制表符分隔):

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

对于右对齐输出:

perl -lane'printf "%10s",$_ for @F[2..$#F];print "";' file
于 2013-03-29T08:25:37.153 回答
1

使用 sed 删除前两列:

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

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

于 2013-03-29T08:27:44.520 回答
1

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

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

希望能帮助到你

于 2013-03-29T08:40:02.000 回答
0
awk '{$1=$2="";gsub("^  ","",$0);}1' your_file

或者

perl -lane 'print "@F[2..scalar(@F)]"' your_file
于 2013-03-29T09:39:10.177 回答