从文件中读取输入并将输出保存到shell脚本中的另一个文件中

时间:2017-10-04 20:46:31

标签: bash shell

每个人,我都创建了一个脚本,用于获取两个不同时期值之间的时差。

目前我的脚本读取了两个名为a和b的值,并给出了时间输出的不同,如下所示,

输入:

Enter the TIME A
12345567787

Enter the TIME B
12356777897

输出:

-00.36 hours

如何从名为time.txt的单个文本文件中读取A和B值,并将不同输出的时间保存到另一个文件“timediff.txt”。

我的输入文件“time.txt”如何显示。

    A              B
123456789       123456755
123445567       123434657
128765809       141536478
127576589       163636376
125364758       132653758
.                .
.                .
.                .
n                n

我期望输出文件timediff.txt看起来像,

 A                B                    output
123456789    123456755   03.00
123445567    123434657   09.00
128765809    141536478   04:44
127576589    163636376   08:22
125364758    132653758   05:13
.            .           .
.            .           .
.            .           .
n            n           n

2 个答案:

答案 0 :(得分:1)

使用while内置read的循环。将输入从输入文件重定向,并将输出重定向到输出文件。

while read a b
do
    # your code here
done < time.txt > timediff.txt

答案 1 :(得分:0)

如果你的脚本不那么冗长并且从参数中获取操作数而不是从stdin中读取它们会更加清晰,但是(假设你的提示是stderr)你可以这样做:

while read a b; do 
  printf "$a\t$b\t%s\n" "$(printf "$a\n$b\n" | myscript)"
done < time.txt > timediff.txt

如果您的提示与您的ouptut混合在一起,我强烈建议您更改脚本(上面方便地称为myscript),以便更合理地使用。