我想从空格分隔的文本文件中删除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)
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)