从制表符分隔的文件中提取要在命令行参数中使用的值

时间:2018-06-12 20:40:07

标签: bash command-line

如果我的文件runtime.tsv

preprocessingTime_ms  1164
samplingTime_ms 17741

其中第一个空格是制表符,第二个空格是空格。如何将samplingTime_ms作为参数传递给java?

基本上我需要传递给像

这样的java
java -Xmx2g matching.PermutationESS\ 
        --runtime 17741/1000

在Mac命令行中执行。

1 个答案:

答案 0 :(得分:1)

使用命令替换来插入从输入文件中提取值的结果。

java -Xmx2g matching.PermutationESS  --runtime $(
  awk -F '\t' '$1 == "samplingTime_ms" {
    print $NF}' runtime.tsv)/1000

如果第二行以空格分隔,请取出-F '\t'(此问题在您的问题中有点不清楚)。

如果您想要计算除法,

java -Xmx2g matching.PermutationESS  --runtime $(
  awk -F '\t' '$1 == "samplingTime_ms" {
    print $NF/1000}' runtime.tsv)