【发布时间】:2015-08-17 07:30:03
【问题描述】:
我想打印两列等于一个变量的行,例如输入:
2607s1 NC_000067.6 95.92 49 1 1 3 50 1e-14 84.2
2607s1 NC_000067.6 97.73 44 1 0 7 50 4e-14 84.2
2607s1 NC_000067.6 97.67 43 1 0 8 50 1e-13 75.0
第一列和最后一列的变量:
a="2607s1"; b="84.2"
并使用 awk 命令,输出:
2607s1 NC_000067.6 95.92 49 1 1 3 50 1e-14 84.2
2607s1 NC_000067.6 97.73 44 1 0 7 50 4e-14 84.2
我尝试了以下方法但没有用:
awk -v '$1==$a' && '$10==$b' test_file
cat test_file|awk '$1=="($a)" && $10=="($b)"'
cat test_file|awk '$1==($a) && $10==($b)'
cat test_file|awk '$1=="$a" && $10=="$b"'
此外,我在一个while循环中运行它,所以$a和$b不断变化请帮助..
【问题讨论】:
-
wrt
I am running it in a while loop- 使用 shell 循环来操作文本总是错误的方法。最终的结果总是冗长、笨拙、脆弱、容易出错、速度慢且通常是糟糕的软件,因为这不是 shell 的用途。您可能想在单独的问题中就较大脚本的那部分寻求帮助。
标签: bash variables unix awk while-loop