如何使用sed从多个文件中删除列?
输入
1 2.1 3.3 4.2 5.1
输出
3.3 4.2 5.1
如果输出将对齐将是好的。
答案 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