如何通过shell脚本抓取存储在HFDS中的管道分隔文本文件的第一行的第二个字段



我是Unix命令的新手。 我在 hdfs 中有一个管道分隔的测试文件。我想通过 shell 脚本从文件中获取第一行的第二个字段并将其存储在变量中。 为了阅读第一行,我使用了以下命令,但它显示的错误为-head unknown command

line=$(hadoop fs -head -n 1 $new_file)

我知道为了抓住我们可以使用的行的第二个字段

y=$(echo $x | awk '{print $2}')
echo $y

其中 y 将是文件的第一行

这应该可以...

$ var="$(awk -F'|' '{print $2; exit}' file)"

它将从第一行中提取第二个字段。

只有第一行的第二个字段,然后跟随会帮助你。所以我使用exit以便只读取第一行,它不应该读取Input_file的所有行。

variable=$(awk -F"|" 'FNR==1{print $2;exit}' Input_file)

以上代码说明:

variable=$(..):创建一个名为变量的变量,它具有获取第一行的第二个字段的命令,它将在其中存储其值。

awk的解释在这里:

-F"|":设置行的字段分隔符。

FNR==1:检查行是否为第一行。

print $2: 打印第一行的第二个字段。

exit:退出不会读取进一步的文件,将节省我们的时间。

最新更新