gpt4 book ai didi

unix - 将 header 插入文件

转载 作者:行者123 更新时间:2023-12-04 13:34:45 25 4
gpt4 key购买 nike

我想听听您关于如何将 header 行(文件中的所有行)插入另一个文件(更大,几GB)的指示。我更喜欢用Unix/awk/sed的方式来完成这项工作。

# header I need to insert to another, they are in a file named "header".


##fileformat=VCFv4.0
##fileDate=20090805
##source=myImputationProgramV3.1
##reference=1000GenomesPilot-NCBI36
##phasing=partial
##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency">
##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
##FILTER=<ID=q10,Description="Quality below 10">
##FILTER=<ID=s50,Description="Less than 50% of samples have data">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
#CHROM POS ID REF ALT QUAL FILTER INFO

最佳答案

header="/name/of/file/containing/header"
for file in "$@"
do
cat "$header" "$file" > /tmp/xx.$$
mv /tmp/xx.$$ "$file"
done

您可能更希望将临时文件与正在编辑的文件放在同一文件系统上,但是任何需要在文件开头插入数据的操作最终都将与此接近。如果每天要整天这样做,则可能需要整理一些东西,但是节省的机会很小(每个文件几分之一秒)。

如果确实需要使用 sed,那么我想您可以使用:
header="/name/of/file/containing/header"
for file in "$@"
do
sed -e "0r $header" "$file" > /tmp/xx.$$
mv /tmp/xx.$$ "$file"
done

该命令读取 header “0”行之后(1行之前)的内容,然后其他所有内容不变地传递。但是,这没有 cat快。

使用 awk的类似构造是:
header="/name/of/file/containing/header"
for file in "$@"
do
awk '{print}' "$header" "$file" > /tmp/xx.$$
mv /tmp/xx.$$ "$file"
done

这只是在输出上打印每条输入线。再次,不如 cat快。
cat优于 sedawk的另一优势;即使大文件主要是二进制数据, cat也将起作用(它忽略了文件的内容)。 sedawk均设计用于处理拆分为行的数据;尽管现代版本可能甚至可以很好地处理二进制数据,但这并不是他们设计的目的。

关于unix - 将 header 插入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5980153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com