如何在一行中找到唯一的单词

如何在一行中找到唯一的单词

我有一个字符串,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

相关内容