【发布时间】:2022-01-11 04:22:44
【问题描述】:
我需要从如下所示的行中找到两个数字
>Chr14:453901-458800
我有大量这些行与不包含“:”的行混合在一起,因此我们可以搜索冒号以找到带有数字的行。每行都有不同的数字。
我需要找到":" 之后的两个数字,它们之间用"-" 分隔,然后从第二个数字中减去第一个数字,然后在屏幕上为每一行打印结果
我希望使用 awk 完成此操作
我设法做到了这样的事情:
awk -e '$1 ~ /\:/ {print $0}' file.txt
但离最终结果还很远
对于我上面展示的这个例子,我的结果是:
4899
因为是458800 - 453901 = 4899的结果
我自己无法弄清楚,希望得到一些帮助
【问题讨论】:
-
只是为了好玩:
grep -o ':.*' file | tr :- -+ | bc(使用 GNU grep)