在shell脚本中调用另一个程序并使用返回的数据

时间:2015-03-31 15:22:44

标签: shell

我有一个名为calculate的c程序,用于排序正确的数据

数据输入(初始文件.txt):

abcd!1023!92
ckdw!3251!io
efgh!9873!xk

返回的数据:

abcd!1023!92
efgh!9873!xk

我的shell脚本包含:

./calculate | awk -F '!' '{sum += $2} END{print sum}' "$1"

当我运行脚本./check file.txt时,它会忽略calculate函数返回的值,而是从输入文件计算。

如何解决这个问题,以便“awk”函数能够从./test函数返回的数据中起作用?

2 个答案:

答案 0 :(得分:1)

我试过了。

sorting.sh(我的过滤程序版本)

#!/usr/bin/env bash
egrep 'a|e' input.txt

program.sh(你的shell命令)

./program.sh | awk -F '!' '{sum += $2} END{print sum}'

@更新,删除了{Etan Reisner所述的"$1"

答案 1 :(得分:1)

您正在将文件传递给awk脚本以及输入。

./calculate | awk -F '!' '{sum += $2} END{print sum}' "$1"

awk只使用一个或另一个,并且在给定时它更喜欢文件参数。

从那里删除"$1"位。