【发布时间】:2019-01-19 21:19:20
【问题描述】:
我正在尝试编写一个 awk 命令,但遇到了一些困难。我的任务是获取 hdfs 目录中的文件列表,然后将每个文件复制到目标目录。到目前为止,我有这个:
hls $files_v | grep $rdir | awk '{print "hdfs dfs -cp "$NF}'
- hls 只是“hdfs dfs -ls”的别名
- $files_v 是我的源目录
- $rdir 是按日期字符串划分的 hadoop 分区,在本例中为 2019-01-09
我需要将我目前拥有的内容与我的目标目录结合起来,所以我最终得到了多行内容为“hdfs dfs cp /some/source/file /some/target/directory/path.
我还有另一个变量 $tgt_dir",其中包含我要复制到的特定目录,但不明白如何将其包含在我的 awk 命令中。
我有这么多变量的原因是因为我将为源目录、分区日期和目标目录使用多个值。我认为重新定义每个变量并在我的脚本中重新使用它们会更容易。我将每个参数定义为运行时参数,如 $1、$2 等,并且可以通过这种方式在运行时更新变量。
谢谢!
【问题讨论】:
-
问题不清楚且过于宽泛:1)请显示示例源目录结构 2)
$rdir是什么 3)预期的输出/操作是什么。具体问题是什么? -
我在原始帖子中定义了“$rdir”。是的,你是对的,我从来没有问过一个具体的问题。我应该问“如何将多个变量传递给 awk,将它们组合成一个输出语句”。或者接近那个的东西,无论如何。感谢您指出我帖子的不足之处;这将帮助我在未来更清楚!