linux对文件的基本操作——持续更新

# 提取指定的列
cat HD786_tumor.vcf| cut -d ';' -f 2 > HD786_tumor.plusmark.vcf

# 查看文件分割符是空格还是制表符:
sed -n l *.txt
# 如果是制表位(TAB),就会显示\t, 如果是空格,就会原样显示。(sed中n后面的l是小写的L)

#提取指定行:
#!/bin/bash
for i in `find -name "*.prefix"` #查找prefix为后缀的所有文件
do
    echo $(basename ${i} .prefix) >> total.txt # 打印显示不带路径,后缀(prefix)的文件名称
    # shell提取文件指定行的内容:
    sed -n '1,2p' ${i} >> total.txt # 使用>>而不是>进行重定向,可以追加写入文件,而不覆盖之前的文件内容。
    # 使用追加重定向一定要注意,每次重新运行之前一定要删除之前的错误文件,不然一直追加。。。
done
# 结果为:
# NG19-GXH1039
# Total_Number_of_Sites   Number_of_Somatic_Sites %
# 1       0       0.00
# NG19-GXH1040
# Total_Number_of_Sites   Number_of_Somatic_Sites %
# 5       2       40.00
# NG20-GXH0020
# Total_Number_of_Sites   Number_of_Somatic_Sites %
# 3       0       0.00
# ……
# ……

# 批量删除没用的信息,只留有用信息
for dir in {$TEST,$TEST_1,$TEST_2,$TEST_3}
do
    cd $dir
    sed -e '/window/d'  $dir/nohup.out > $dir/nohup_1.out
    sed -e '/scan/d'  $dir/nohup_1.out > $dir/nohup_.out
    sed -e '/consumed/d'  $dir/nohup_.out > $dir/nohup_1.out  # 只留样本id以及结果
    sed -e '/load/d'  $dir/nohup_1.out > $dir/nohup_.out
    rm $dir/nohup_1.out
done

猜你喜欢

转载自www.cnblogs.com/YlnChen/p/12667183.html
今日推荐