生信软件50 - 生物信息高效命令行数据分析awk+sed技巧

1. awk & sed基础命令

从 file.txt 中提取第 2、4、5 个字段

awk '{print $2,$4,$5}' input.txt

打印第 5 个字段等于 ‘abc123’ 的每一行

awk '$5 == "abc123"' file.txt

打印第 5 个字段不等于 ‘abc123’ 的每一行

awk '$5 != "abc123"' file.txt

打印第 7 个字段与正则表达式匹配的每一行

awk '$7  ~ /^[a-f]/' file.txt

打印第 7 个字段与正则表达式不匹配的每一行

awk '$7 !~ /^[a-f]/' file.txt

根据第 2 列获取 file.txt 中的唯一条目(只保留第一个实例)

awk '!arr[$2]++' file.txt

打印 file.txt 中第 3 列大于第 5 列的行

awk '$3>$5' file.txt

计算 file.txt 第 1 列的总和

awk '{sum+=$1} END {print sum}' file.txt

计算第 2 列的平均值

awk '{x+=$2}END{print x/NR}' file.txt

替换 file.txt 中所有的 foobar

sed 's/foo/bar/g' file.txt

去除 file.txt 中的前导空格和制表符

sed 's/^[ \t]*//' file.txt

去除 file.txt 中的尾随空格和制表符

sed 's/[ \t]*$//' file.txt

去除 file.txt 中的前导和尾随空格及制表符

sed 's/^[ \t]*//;s/[ \t]*$//' file.txt

删除 file.txt 中的空行

sed '/^$/d' file.txt

删除包含 error 的行及其之后的所有内容

sed -n '/error/,$!p' file.txt

2. awk & sed复杂命令

按染色体和坐标位置提取文本信息

从 file.txt 中返回 1 号染色体上位置在 1MB 到 2MB 之间的所有行(假设染色体在第 1 列,位置在第 3 列)。此逻辑也可用于返回等位基因频率高于特定值的变异)。

cat file.txt | awk '$1=="1"' | awk '$3>=1000000' | awk '$3<=2000000'
</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信与基因组学

每一份鼓励是我坚持下去动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值