Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 从文件中读取输入,并将输出保存到shell脚本中的另一个文件中_Bash_Shell - Fatal编程技术网

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

Bash 从文件中读取输入,并将输出保存到shell脚本中的另一个文件中,bash,shell,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

各位,我已经创建了一个脚本,用于获取两个不同历元时间值之间的时间差

目前我的脚本读取两个名为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

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

while read a b
do
    # your code here
done < time.txt > timediff.txt
读取a b时
做
#你的代码在这里
完成timediff.txt

如果脚本不那么冗长,从参数中获取操作数,而不是从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
读取a b时;做
printf“$a\t$b\t%s\n”“$(printf“$a\n$b\n”| myscript)”
完成timediff.txt

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

任何关于shell脚本的教程都应该说明如何读取文件。因为printf的第一个参数是格式字符串,您容易受到包含
%
字符的变量的影响。更安全的方法是
printf“%s\n%s\n”$a“$b”
配置系统事件:设置SecureSphere以在系统事件发生时基于CEF标准发送系统日志消息:1定义新的操作集并按如下方式配置参数:名称:操作集名称,例如System\u syslog。系统日志主机:系统日志服务器的IP或主机名。系统日志日志级别:系统日志日志级别。消息:系统事件的CEF消息。CEF:0 | ImpervaInc.| SecureSphere | 6.0 |${Event.eventType}|${Event.message}|${Event.severity.displayName}| suser=${Event.username}rt=#(${Event.createTime})cat=SystemEvent@PrabakaranVenkatesh我不明白你的评论和我的回答有什么关系。