我在shell脚本中有一个sqoop命令,它返回一列一行的输出,如下所示:
你能帮我解析一下上面的输出,只得到值0吗?谢谢。
c86crjj01#
根据你的图像:
......你需要最后一句台词,对吧?通过管道将输出连接到tail -n 2应满足
tail -n 2
| 0 | ---------------
然后从那里连接到head -n 1,瞧。另一个方法是删除带有“grep -v -e”^--*$“的虚线,以使
head -n 1
| Identifier | | 0 |
然后从那里通过管道传送到tail -n 1以检索最后一行。最后,通过管道连接到cut -d ' ' -f 2或awk '{print $2}'如果您愿意的话,一种改进是只使用sed或awk来完成全部工作。如果您确定有一列和两行(标题和数据),则所需的行是第四行
tail -n 1
cut -d ' ' -f 2
awk '{print $2}'
sed
awk
1. ---------------- 2. | Identifier | 3. ---------------- 4. | 0 | 5. ----------------
因此,对于sed,只需删除该行的前导“pipe-space”和尾随“spaces-pipe”:
$sqoop_command | sed -e '4s/\(^| \)\|\( *|$\)//g'
在这里,awk在已知时可能看起来更容易:
$sqoop_command | awk 'FNR == 4 {print $2}'
1条答案
按热度按时间c86crjj01#
根据你的图像:
......你需要最后一句台词,对吧?
通过管道将输出连接到
tail -n 2
应满足然后从那里连接到
head -n 1
,瞧。另一个方法是删除带有“grep -v -e”^--*$“的虚线,以使
然后从那里通过管道传送到
tail -n 1
以检索最后一行。最后,通过管道连接到
cut -d ' ' -f 2
或awk '{print $2}'
如果您愿意的话,一种改进是只使用
sed
或awk
来完成全部工作。如果您确定有一列和两行(标题和数据),则所需的行是第四行
因此,对于
sed
,只需删除该行的前导“pipe-space”和尾随“spaces-pipe”:在这里,
awk
在已知时可能看起来更容易: