linux处理数据常用指令

linux处理数据常用指令

统计某字符出现的行数

## 例如,统计test.vcf文件中“-”字符出现的行数
find test.vcf | xargs cat | grep .*-.*|wc –l

删除某字符所在的行

## 例如,删除test.vcf文件中“-”字符所在的行
sed -e "/-/d" out.vcf > test_out.vcf

替换文件内固定字符

## 例如:把0|0替换为0
sed -i 's#0|0#0#g' beagleout.vcf

统计文件列数

## 统计beagleout.vcf文件中空格或Tab分隔文件列数
cat beagleout.vcf | awk 'END{print NF}'
## 逗号分隔文件统计列数
awk -F "," 'END{print NF}' all_vars.csv

两个文件的内容处理(合并)

## 将tmp文件的第一列加到cubic文件中生成tt文件
awk '{print $1}' tmp.txt | paste - cubic.txt > tt.txt

## 两个文件按列合并
paste file1 file2 > combinefile

根据一个文件内容提取另外一个文件内容

## 根据一个文件内容提取另外一个文件内容
file1——有id
file2——有id和数据
grep -wFf file1 file2 > output

提取两文件相同ID的行

## 提取两文件相同ID的行
file1:
a rs1
b rs2
c rs5
file2:
a 124 435 3432 rs1
b 232 434 123 rs2
c 3232 34545 343 rs3
d 43432 434 5454 rs5
## 要是根据file的第二列和file2的第五列相同的rs提取数据,生成的file3如下:
a 124 435 3432 rs1
b 232 434 123 rs2
d 43432 434 5454 rs5
## 使用以下命令:
awk 'NR==FNR{a[$2];next}$5 in a' file1 file2 > file3
## a[$2]以第一个文件的第二列为下标,建立数组a;
## next跳过第一个文件到第二个文件;
## $5 in a如果第二个文件第五列的ID在数值a中,则打印。

提取file1中有而在file2中没有的部分

## linux系统下两个文件file1和file2,其中file2是file1的一部分,如何提取file1中有而在file2中没有的部分
cat file1 file2 |sort|uniq -c |grep -v " 2 "|cut -d" " -f 2-
## 如果你的文件每行都是维一的可以这样处理.

Linux根据一个文件的列内容提取另一个文件的行

## Linux根据一个文件的列内容提取另一个文件的行
awk 'NR==FNR{a[$3]=$0}NR!=FNR{print a[$1]}' hang.vcf lie.txt > output.vcf

提取第一列中带有某个关键词的文件

## 提取第一列中带有某个关键词的文件
awk -F " " '{if($1~/^1/) print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10}' out.vcf > chr1.vcf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值