我有一个字符串,50003 50003 50003 50001
在处理成另一个文件后得到的字符串存储在变量中。现在我想要从该变量中获得独特的单词。比如50003 50001
如何做到这一点?
答案1
您可以通过 tr、sort、uniq 进行管道传输,例如在命令提示符下您可以测试以下内容:
$ var1='50003 50003 50003 50001 50003'
下一个,
$ echo $var1 | tr ' ' '\n' | sort | uniq
50001
50003
正如您所看到的,它输出唯一的内容,并对它进行排序,以防您以后想用它做一些需要排序输入的事情。
更新
对于评论中的其他问题,如果您希望将结果保存到变量中,您可以在脚本中:
var2="$( echo $var1 | tr ' ' '\n' | sort | uniq )"
$(
...是 bash 命令替换,用命令的输出)
替换内容$(...)
因此,如果您希望在脚本稍后输出$var2
到终端,只需:
echo "$var2"
- 用引号引起来
$var2
,以便继续将每个结果显示为一行 - 否则,如果不加引号,
echo
默认情况下$var2
会将每个“单词”解释为单独的参数,并用空格将其一一输出,因此最终会得到一个长句子。
另请记住,您可以将输出保存到文件中,例如~/unique_results.txt
:
echo $var1 | tr ' ' '\n' | sort | uniq > ~/unique_results.txt
>
是文件重定向,将标准输出重定向到指定文件
答案2
如果这是在 bash 中,则以下命令将仅打印名为 的存储变量中的 uniq 单词herpderp
:
for w in $herpderp; do echo $w ; done | uniq