【问题标题】:how to squeeze -1 in file如何在文件中压缩-1
【发布时间】:2016-07-17 04:56:42
【问题描述】:

我有如下文件

-1  1 -1
2  -1  2
-1  2  0

我想将元素“-1”压缩

tr -s  '-1' file

但它不起作用。

添加

我使用 vcftools 将 vcf.gz 更改为具有元素“0”、“1”或“2”的矩阵(例如,chr1.012)(缺失值为“-1”)。但我发现每一行的长度是不同的。所以我怀疑是不是因为“-1”。所以我想挤压“-1”元素。

【问题讨论】:

  • “挤压”是什么意思?用单个“-1”替换连续出现的“-1”?
  • @Mithrandir 我想将“-1”视为一个数字
  • 你的输出应该是什么样子的?
  • tr 只会在一对一的基础上音译或压缩字符。您的 -1 是两个字符,因此您需要使用不同的工具 - 可能是 sedawkperl

标签: linux bash centos tr vcftools


【解决方案1】:

它不适用于tr,因为:

  • -1 将被视为具有两个字符 -1 的字符集,而不是单个标记 -1

  • 此外,即使您只有一个字符,也需要出现相邻的位置才能让tr 应用挤压操作

【讨论】:

    【解决方案2】:

    你可以在sed中实现类似的功能

    $ echo "-1-1-1 2 -1" | sed -r 's/(-1)+/-1/g'
    -1 2 -1
    

    用一个实例替换-1s 的连续流。

    【讨论】:

      猜你喜欢
      • 2021-09-12
      • 2011-10-30
      • 1970-01-01
      • 2011-11-15
      • 1970-01-01
      • 2019-04-06
      • 2015-12-19
      • 2022-10-25
      • 1970-01-01
      相关资源
      最近更新 更多