我有一个文件说它file.tsv有几列,看起来像:
# Gene Family xyz136 xyz140 xyz145 xyz147 xyz148
UNMAPPED 7650721.04472 4253028.928704 8415910.028496 7453466.3835 3282779.545448
UNGROUPED 4148127.07896 3999040.089552 4423800.370656 6066650.96145 4460845.331384
UNGROUPED|g__Absiella.s__Absiella_dolichum 0 0 8548.5181548 0 0
UNGROUPED|g__Acidaminococcus.s__Acidaminococcus_fermentans 0 0 0 0 0
UNGROUPED|g__Acidaminococcus.s__Acidaminococcus_intestini 0 0 0 0 0
UNGROUPED|g__Acidaminococcus.s__Acidaminococcus_intestini_CAG_325 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
如何通过删除小数点将此表中存在的所有数值转换为最接近的整数?
我希望它看起来像这张表:
# Gene Family xyz136 xyz140 xyz145 xyz147 xyz148
UNMAPPED 7650721 4253029 8415910 7453466 3282780
UNGROUPED 4148127 3999040 4423800 6066651 4460845
UNGROUPED|g__Absiella.s__Absiella_dolichum 0 0 8549 0 0
UNGROUPED|g__Acidaminococcus.s__Acidaminococcus_fermentans 0 0 0 0 0
UNGROUPED|g__Acidaminococcus.s__Acidaminococcus_intestini 0 0 0 0 0
UNGROUPED|g__Acidaminococcus.s__Acidaminococcus_intestini_CAG_325 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
注意:尽管它是一个.tsv文件,但它看起来不像表格。我不知道我应该为此使用哪种格式化工具。
谢谢,直流
您可以尝试使用numfmtGNU Coreutils 中的实用程序:
numfmt --delimiter=$'\t' --header --format='%.0f' --field=2- <file.tsv
Run Code Online (Sandbox Code Playgroud)
或者,在 awk 中是这样的:
awk -F'\t' 'BEGIN{OFS=FS} NR>1 {for(i=2;i<=NF;i++) $i=int($i+0.5)} 1' file.tsv
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |