【发布时间】:2015-06-16 01:02:02
【问题描述】:
我有一个数据集如下:
2,5
159,5
2,100
2,858
3,100
3,114
3,171
3,858
5,100
858,2
2,2456
4500,2
2456,3
如果我从第 1 列中选择一个元素,例如第 2 列。我需要从第 2 列中获取所选元素的对应元素。
我用过:
awk -F, '$1=="2" {print $2}' Sample.txt
返回元素2对应的第2列元素,如下:
5
100
858
2456
我希望下一次迭代对 5 执行检查并返回第 2 列元素。在这种情况下,5 应该返回 100,但它已经由 2 显示,所以我不需要 100。同样检查 100 等等直到 2456。对于 2456,它应该返回 3,它是对应的第 2 列元素并且是唯一的.我希望该迭代对 3 继续相同并返回唯一对应的第 2 列唯一元素,直到没有第 2 列元素要返回。
最终输出应如下所示:
5
100
858
2456
3
114
171
# 3 is got as a column 2 element of 2456 and 114,171 are got as column 2 element of 3. Since, 114 and 171 don't have any further unique column 2 elements (Refer the sample data set above). The iteration stops. Can this be recursively achieved as I am able to do it only for the first chosen element.
【问题讨论】:
-
你想看什么输出?
-
听起来你想要这个递归下降解析器的某个版本:stackoverflow.com/a/25085230/1745001。如果是这样,并且您无法弄清楚如何自己调整以产生所需的输出,请编辑您的问题以显示所需的输出。