使用sed从文本文件中删除列

lar*_*ara 4 sed

我想从空格分隔的文本文件中删除1,2,4,5,6,10,11,12列.我想从现有文件中删除这些列而不是打印输出.我怎么能用sed这样做?

MMMM   1522  KL1 PPP A 201      -7.299   41.933  48.192  1.00 31.52           G
MMMM     22  G   SSS A   3       39.541  25.078  -2.722  1.00 30.47           B  
Run Code Online (Sandbox Code Playgroud)

期望的输出

KL1    -7.299   41.933  48.192
G       39.541  25.078  -2.722
Run Code Online (Sandbox Code Playgroud)

Ste*_*eve 6

sed不太理想.用途cut:

cut -d ' ' --complement -f -2,4-6,10-12 file.txt
Run Code Online (Sandbox Code Playgroud)

编辑:

来自评论的其他信息:

< file.txt awk '{ print $3, $7, $8, $9 }' | column -t
Run Code Online (Sandbox Code Playgroud)

结果:

KL1  -7.299  41.933  48.192
G    39.541  25.078  -2.722
Run Code Online (Sandbox Code Playgroud)

要覆盖您的文件,您需要使用临时文件:

< file.txt awk '{ print $3, $7, $8, $9 }' | column -t > tmpfile && mv tmpfile file.txt
Run Code Online (Sandbox Code Playgroud)