【发布时间】:2013-03-20 18:11:31
【问题描述】:
我有一个文件 test.txt,如下所示:
2092 Mary
103 Tom
1239 Mary
204 Mark
1294 Tom
1092 Mary
我正在尝试创建一个 shell 脚本,它将
- 读取每一行,将两列数据放入变量var1和var2中
- 如果每行中的 var2 相同,则在这些行中添加 var1。
- 将文件输出为文本文件。
结果应该是 var2 列中的唯一值。到目前为止,这是我所拥有的:
#!/bin/sh
#!/usr/bin/sh
cat test.txt| while read line;
do
$var1=$(echo $line| awk -F\; '{print $1}')
$var2=$(echo $line| awk -F\; '{print $2}')
如何在每一行中引用变量然后比较它们?
预期的输出是:
4423 Mary
1397 Tom
204 Mark
【问题讨论】:
-
如何使用
sort -s -n k 1然后-u来获取唯一值? -
你能添加预期的输出吗?谢谢
-
没有
done?和$var1=,你的意思可能是var1=...。最后,不需要以如此复杂的方式分割线。while read num name; do ... ; done < test.txt。最后,最后,同意 fedorqui 的观点,即sort可以满足您的需求,除非这只是您的问题的草图。在没有sort和/或uniq的情况下在shell 代码中实现唯一性并非易事。祝你好运!
标签: linux parsing shell variables