BASH脚本:得到命令的输出模式,成为它作为一个变量到另一个命令处理[...]
问题描述:
我在这个格式的数据文件:BASH脚本:得到命令的输出模式,成为它作为一个变量到另一个命令处理[...]
2014-02-05 09:43:30;data;data;data;data;data;
2014-02-05 09:52:10;data;data;data;data;data;
2014-02-05 10:02:41;data;data;data;data;data;
该数据已经通过搜索处理针对具有grep |的特定“数据”模式awk语法,并以与原始文件数据相同的格式生成输出。该输出显示在屏幕上。
我感兴趣的是什么第一部分:
2014-02-05 09:43:30
我上运行该服务器在格林尼治标准时间(UTC)时区的日期和数据也是这种格式。我想利用数据的上述部分并替换它像这样:
- 从所生成的输出
- 饲料2014-02-05 9时43分30秒除去一部分时间(9时43分30秒)到TZ =美国/华盛顿日期-d“09:43:30”(作为每个加工生产线的已保存变量),以获得指定时区的日期/时间输出(美国/华盛顿)
- 重新插入输出TZ =美国/华盛顿日期-d“09:43:30”到原始输出(由grep | awk生成),用TZ = America/New生成的新日期和时间替换原始日期和处理时间。华盛顿日期-d“09:43:30”
- 重新显示修改后的输出
我遇到了我想要实现的过程背后的语法逻辑问题,如上面的项目符号所述。
答
试着这么做
#!/bin/bash
while read -r line; do
first="${line%%;*}"
second="${line#*;}"
export TZ=EST
echo $(date -d "$first GMT" '+%Y-%m-%d %H:%M:%S')";$second"
done < <(grep)
示例输出
> abovescript
2014-02-05 04:43:30;data;data;data;data;data;
2014-02-05 04:52:10;data;data;data;data;data;
2014-02-05 05:02:41;data;data;data;data;data;
嗨BroSlow,想你的脚本是这样的: '#/斌/庆典 读-p “中输入数据:” NMBR 同时读取-r行; echo $(date -d“$ first GMT”'+%Y-%m - %d%H:%M:%S')“; $ second” done
@linux_newbie如果你做'date --version'? – BroSlow
'date(GNU coreutils)8.13' –