我现在拥有的文本文件如下所示,
VOG0005 - k141_44786_1 - 4.9e-11 41.0 0.0 2e-08 32.4 0.0 2.0 2 0 0 2 2 2 2 -
VOG0005 - k141_46357_20 - 9.2e-44 148.8 1.7 2.4e-32 111.2 0.2 3.0 2 1 1 3 3 3 3 -
VOG0010 - k141_1081_2 - 1.2e-06 27.4 0.5 0.00011 21.0 0.0 2.3 2 0 0 2 2 2 2 -
VOG0010 - k141_17432_67 - 1.2e-07 30.7 0.0 1.7e-07 30.2 0.0 1.3 1 1 0 1 1 1 1 -
VOG0010 - k141_2610_7 - 2.1e-06 26.6 0.0 2.9e-06 26.2 0.0 1.1 1 0 0 1 1 1 1
该命令是否将sort
连字符和中间的空格计为单独的列?如果是,那么如何使用该cut
命令删除其间的连字符?
VOG0005 - k141_44786_1 - 4.9e-11
得到这样的东西
VOG0005 k141_44786_1 4.9e-11
即,一个空间对我有用。我尝试了一个命令:cut -f2 File.txt
,但在我的情况下似乎不起作用。
有人可以帮忙吗?
您可以使用 sed 命令删除带有 spac 的连字符。
请参考以下示例
与 类似
sed
,您也可以使用perl
:或者
解释
显然,您可以仅使用
perl
(感谢@ Stéphane Chazelas)获得相同的结果:同样
sed
:请参阅@Stéphane Chazelas 评论以获取解释
首先,是的,
sort
将第一个-
视为第 2列,将第 3 个视为k141_xxxx
第 3 列,将第二个-
视为第 4 列,依此类推。真相是微妙而复杂的。你的问题并不完全清楚。要破坏第二列和第四列,不管它们是什么,做
要破坏任何连字符的字段,请执行
awk
是矫枉过正(但是,所以是perl
)。