首页 > 解决方案 > 如何将hadoop的awk结果保存到shell脚本中的变量?

问题描述

我正在尝试使用 awk 将 hadoop 的过滤结果保存到 sh 脚本中的变量中,但我失败了:当我在 shell 命令中运行它时,我得到了这个结果:

 hadoop fs -ls hdfs://ngdaas/FlareData/output_8/CustomerSubject/aggr=daily/tbl_dt=20180623 | awk '{print $6,$7}'

2018-07-03 06:18

现在我尝试将此结果(2018-07-03 06:18)保存到我尝试编写的 sh 变量中:

  #!/bin/bash
    load_date="hadoop fs -ls hdfs://ngdaas/FlareData/output_8/CustomerSubject/aggr=daily/tbl_dt=${today} | awk '{print $6,$7}'"
    echo "${load_date}"

但它没有工作它打印相同的命令而不是命令的结果,有什么帮助吗?

标签: hadoopsh

解决方案


你应该使用$来存储一个 shell 变量,虽然我没有测试过它,因为我没有 hadoop。

load_date=$(hadoop fs -ls hdfs://ngdaas/FlareData/output_8/CustomerSubject/aggr=daily/tbl_dt=${today} | awk '{print $6,$7}')

推荐阅读