减去两列,然后使用awk/grep和vi删除输出等于0的行
我在格式化文件时遇到问题。我想从第2列和第3列中减去值,如果结果为0,我想删除该行并将文件保存到单独的输出文件中 以下是输入文件:减去两列,然后使用awk/grep和vi删除输出等于0的行,awk,grep,Awk,Grep,我在格式化文件时遇到问题。我想从第2列和第3列中减去值,如果结果为0,我想删除该行并将文件保存到单独的输出文件中 以下是输入文件: chr9 139844640 139844640 18450 chr9 139888759 139888925 18451 chr9 139965116 139965298 18453 chr9 139981357 139981444 18454
chr9 139844640 139844640 18450
chr9 139888759 139888925 18451
chr9 139965116 139965298 18453
chr9 139981357 139981444 18454
输出文件:
chr9 139888759 139888925 18451
chr9 139965116 139965298 18453
chr9 139981357 139981444 18454
chr9 139888759 139888925 18451
chr9 139965116 139965298 18453
chr9 139981357 139981444 18454
此时此刻,我正以冗长的方式进行:
awk 'NR == 1 { $4 = "diff." } NR >= 0 { $4 = $2 - $3 } 1' input.bed > input_B.bed
然后在命令行上运行grep:
grep -wn 0 input_B.bed
删除vi中的行
任何关于更简单/更快的方法的建议都会非常好 简单到:
awk '$2 - $3' infile >outfile
因为有一个默认的打印操作。因此,0
(true
)的不同结果会触发它
它产生:
简单到:
awk '$2 - $3' infile >outfile
因为有一个默认的打印操作。因此,0
(true
)的不同结果会触发它
它产生: