我有一个名为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函数返回的数据中起作用?
答案 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"
位。