如何使用 sed 从多个文件中删除列?
输入
1 2.1 3.3 4.2 5.1
输出
3.3 4.2 5.1
如果输出对齐就好了。
一种方式(输出以制表符分隔):
perl -lane'print join "\t",@F[2..$#F]' file
对于右对齐输出:
perl -lane'printf "%10s",$_ for @F[2..$#F];print "";' file
使用 sed 删除前两列:
sed 's/^[ \t]*[0-9.]*[ \t]*[0-9.]*[ \t]*//' input1 input2
[ \t]*[0-9.]*
如果要删除更多列,可以增加 s 的数量。
awk 可以做同样的事情,允许您轻松切换列并在需要时更改输入和输出中的分隔符:
awk '{print $3,$4,$5}' test
3.3 4.2 5.1
希望能帮助到你
awk '{$1=$2="";gsub("^ ","",$0);}1' your_file
或者
perl -lane 'print "@F[2..scalar(@F)]"' your_file