我有一个包含1056列的文件,其中每一列看起来都是这样(这是4列的子集):
0|0:0.2 0|0:0.03 0|0:0.02 0|0:0
0|0:0.04 0|0:0.7 0|0:0.05 0|0:1.3
我想从每一列和每一行中删除双点和数字部分。
我只为一列尝试过此代码,但实际上不起作用...
awk '{gsub(":[0-9]","",$1)}' file > file.mod
我希望我的输出文件看起来像这样:
0|0 0|0 0|0 0|0
0|0 0|0 0|0 0|0
非常感谢您:)
答案 0 :(得分:1)
如果您的Input_file与显示的示例相同,那么请尝试以下操作。
awk '{for(i=1;i<=NF;i++){sub(/:.*/,"",$i)}} 1' Input_file
或者也可以通过@Socowi注释添加解决方案,如下所示。
awk '{gsub(":[0-9.]*",""); print}' Input_file
答案 1 :(得分:0)
您也可以尝试Perl
$ cat sonia.txt
0|0:0.2 0|0:0.03 0|0:0.02 0|0:0
0|0:0.04 0|0:0.7 0|0:0.05 0|0:1.3
$ perl -pe ' s/:\S+//g ' sonia.txt
0|0 0|0 0|0 0|0
0|0 0|0 0|0 0|0
$