在大文件的每一列中,删除特定分隔符后的所有内容
Within each column of a large file, removing everything after a certain delimiter
我有一个包含许多列的文件,如下所示:
0/0:7,0:7:21:0,21,245 0/0:9,0:9:27:0,27,339 0/0:13,0:13:39:0,39,524
我想删除每一列中的所有内容,以便输出如下所示:
0/0 0/0 0/0
列太多,无法手动应用像 awk 这样的解决方案,您必须为每列键入 $1、$2。
我在 R 中尝试了很多解决方案,none 其中给出了我正在寻找的结果。他们都拆分了列,而不是只保留第一个条目。这是一个 vcf 文件,我试过使用 vcf2tsv,但我无法使依赖项工作。
例如我试过这个代码:
test<-sub('(:<=\:).*$', '', x, perl=TRUE)
这给了我以下内容:
"c(\"0/0:8,0:8:24:0,24,305\", \"0/0:6,0:6:18:0,18,242\", \"0/0:5,0:5:15:0,15,200\",
显然我不明白代码。感谢任何帮助。
您可以使用问题中的样本输入
sed 's#:[^ ]*##g' inputfile
获取输出
0/0 0/0 0/0
sed
脚本会将所有以冒号 (:
) 开头,后跟除 space ([^ ]
) 之外的任何字符的所有内容替换为空字符串(g
)。这意味着它将在由 space.
分隔的所有列中执行此操作
我有一个包含许多列的文件,如下所示:
0/0:7,0:7:21:0,21,245 0/0:9,0:9:27:0,27,339 0/0:13,0:13:39:0,39,524
我想删除每一列中的所有内容,以便输出如下所示:
0/0 0/0 0/0
列太多,无法手动应用像 awk 这样的解决方案,您必须为每列键入 $1、$2。
我在 R 中尝试了很多解决方案,none 其中给出了我正在寻找的结果。他们都拆分了列,而不是只保留第一个条目。这是一个 vcf 文件,我试过使用 vcf2tsv,但我无法使依赖项工作。
例如我试过这个代码:
test<-sub('(:<=\:).*$', '', x, perl=TRUE)
这给了我以下内容:
"c(\"0/0:8,0:8:24:0,24,305\", \"0/0:6,0:6:18:0,18,242\", \"0/0:5,0:5:15:0,15,200\",
显然我不明白代码。感谢任何帮助。
您可以使用问题中的样本输入
sed 's#:[^ ]*##g' inputfile
获取输出
0/0 0/0 0/0
sed
脚本会将所有以冒号 (:
) 开头,后跟除 space ([^ ]
) 之外的任何字符的所有内容替换为空字符串(g
)。这意味着它将在由 space.