如何用文件名的数字部分替换列中的所有值(所有NA)?

阿尼卡姆

我有多个(22)文件的命名如下:

chr1.out,chr2.out ...,chr22.out

这些文件每个都有46列和多行

其中一个文件的前6列和6行如下所示:

  alternate_ids      rsid chromosome position alleleA alleleB index
     rs4814683 rs4814683         NA     9795       G       T     1
     rs6076506 rs6076506         NA    11231       T       G     2
     rs6139074 rs6139074         NA    11244       A       C     3
     rs1418258 rs1418258         NA    11799       C       T     4
     rs7274499 rs7274499         NA    12150       C       A     5
     rs6116610 rs6116610         NA    12934       G       A     6

假设这在文件chr1.out中

我想做的是用1替换列染色体中的所有NA。

所以看起来像这样:

  alternate_ids      rsid chromosome position alleleA alleleB index
     rs4814683 rs4814683         1     9795       G       T     1
     rs6076506 rs6076506         1    11231       T       G     2
     rs6139074 rs6139074         1    11244       A       C     3
     rs1418258 rs1418258         1    11799       C       T     4
     rs7274499 rs7274499         1    12150       C       A     5
     rs6116610 rs6116610         1    12934       G       A     6

我想对这22个文件中的每一个都做同样的事情。因此,chr2.out在第3列中获得2,chr3.out在第3列中获得3等

jesse_b

使用bash脚本:

#!/bin/bash

tmp_d=$(mktemp -q -d -t 'replace.XXXXX' || mktemp -q -d)

for f in chr*.out; do
    tmp_f="${tmp_d}/$f"
    n="${f#chr}"
    n="${n%.out}"
    awk -v n="$n" '$3 == "NA" { $3=n }1' "$f" > "$tmp_f"
    mv "$tmp_f" "$f"
done

rm -r "$tmp_d"

首先,我们将创建一个tmp目录,因为我们将创建tmp文件

然后,我们遍历每个chr*.out文件。

  • 在tmp目录中为此文件创建一个变量
  • 删除chr前缀
  • 删除.out后缀
  • awk然后将NA第三列中的任何内容替换为从文件名中提取的数字,并将其保存到tmp文件中
  • 用tmp文件替换原始文件

循环完成后,我们删除tmp目录。

如果您有GAWK(可以使用-i就地选项),则可以避免所有tmp内容

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何用BASH中的递增数字替换所有匹配项?

来自分类Dev

如何替换所有非数字值?

来自分类Dev

如何用文件夹的所有文件名中的下划线替换所有空格?

来自分类Dev

使用Ant替换文件名中的所有下划线?

来自分类Dev

在Windows的整个子文件夹中替换文件名中的所有#

来自分类Dev

如何用条件替换Pandas数据框中所有列中的所有值

来自分类Dev

查找和替换文件夹中的所有文件名-PHPStorm / WebStorm

来自分类Dev

如何获取目录中的所有文件名?

来自分类Dev

如何用字符串中的连字符替换所有数字?

来自分类Dev

如何用均值替换所有列的相似值?

来自分类Dev

如何替换GCP Cloud Storage中文件名中的所有空格?

来自分类Dev

如何使用linux find命令替换所有文件名中的特殊字符?

来自分类Dev

如何替换所有非数字值?

来自分类Dev

如何用BASH中的递增数字替换所有匹配项?

来自分类Dev

使用datagridview列值重命名目录中的所有文件名

来自分类Dev

如何用特定值替换所有数字字符?

来自分类Dev

如何在终端中列出所有文件名?

来自分类Dev

用下划线替换文件名中的所有点

来自分类Dev

在Linux中如何使用Shell脚本用下划线替换所有文件名中的空格?

来自分类Dev

如何用每个事件的唯一值替换文件中的所有事件

来自分类Dev

如何在所有文件夹和文件名中替换字符串

来自分类Dev

如何从目录中的所有文件名中删除“ _”

来自分类Dev

重击括号扩展:如何用数字匹配所有文件名?

来自分类Dev

将所有文件移动到以部分文件名命名的子目录中

来自分类Dev

如何列出系统中的所有文件名

来自分类Dev

如何用单个值替换向量的所有元素?

来自分类Dev

如何用数字和特殊字符替换字符串中的所有数字?

来自分类Dev

如何用 SVG 文件中的值替换 XML 标记的所有出现

来自分类Dev

如何用除 NA 之外的另一个数据帧替换数据帧中的所有值?

Related 相关文章

  1. 1

    如何用BASH中的递增数字替换所有匹配项?

  2. 2

    如何替换所有非数字值?

  3. 3

    如何用文件夹的所有文件名中的下划线替换所有空格?

  4. 4

    使用Ant替换文件名中的所有下划线?

  5. 5

    在Windows的整个子文件夹中替换文件名中的所有#

  6. 6

    如何用条件替换Pandas数据框中所有列中的所有值

  7. 7

    查找和替换文件夹中的所有文件名-PHPStorm / WebStorm

  8. 8

    如何获取目录中的所有文件名?

  9. 9

    如何用字符串中的连字符替换所有数字?

  10. 10

    如何用均值替换所有列的相似值?

  11. 11

    如何替换GCP Cloud Storage中文件名中的所有空格?

  12. 12

    如何使用linux find命令替换所有文件名中的特殊字符?

  13. 13

    如何替换所有非数字值?

  14. 14

    如何用BASH中的递增数字替换所有匹配项?

  15. 15

    使用datagridview列值重命名目录中的所有文件名

  16. 16

    如何用特定值替换所有数字字符?

  17. 17

    如何在终端中列出所有文件名?

  18. 18

    用下划线替换文件名中的所有点

  19. 19

    在Linux中如何使用Shell脚本用下划线替换所有文件名中的空格?

  20. 20

    如何用每个事件的唯一值替换文件中的所有事件

  21. 21

    如何在所有文件夹和文件名中替换字符串

  22. 22

    如何从目录中的所有文件名中删除“ _”

  23. 23

    重击括号扩展:如何用数字匹配所有文件名?

  24. 24

    将所有文件移动到以部分文件名命名的子目录中

  25. 25

    如何列出系统中的所有文件名

  26. 26

    如何用单个值替换向量的所有元素?

  27. 27

    如何用数字和特殊字符替换字符串中的所有数字?

  28. 28

    如何用 SVG 文件中的值替换 XML 标记的所有出现

  29. 29

    如何用除 NA 之外的另一个数据帧替换数据帧中的所有值?

热门标签

归档