Gir*_*shi 4 shell-script text-processing
我有一个字符串,它是50003 50003 50003 50001
在处理到另一个文件中后得到的,该文件存储到一个变量中。现在我想从那个可变的独特词中。比如50003 50001
怎么做?
您可以通过 tr、sort、uniq 对其进行管道传输,例如在命令提示符下您可以对此进行测试:
$ var1='50003 50003 50003 50001 50003'
Run Code Online (Sandbox Code Playgroud)
下一个,
$ echo $var1 | tr ' ' '\n' | sort | uniq
50001
50003
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它输出唯一的,并对其进行排序,以防你以后想用它做一些需要排序输入的事情。
对于评论中的其他问题,如果您希望将结果保存到变量中,您可以在脚本中:
var2="$( echo $var1 | tr ' ' '\n' | sort | uniq )"
Run Code Online (Sandbox Code Playgroud)
$(
...)
是一个 bash 命令替换,用$(...)
命令的输出替换的内容所以稍后在你的脚本中,如果你想输出$var2
到终端,只需:
echo "$var2"
Run Code Online (Sandbox Code Playgroud)
$var2
用引号括起来,以便继续将其显示为每个结果一行echo
默认情况下将每个“单词”解释$var2
为一个单独的参数,将其一一输出,以空格分隔,因此您最终会得到一个长句子。还请记住,您可以将输出保存到一个文件中,例如~/unique_results.txt
:
echo $var1 | tr ' ' '\n' | sort | uniq > ~/unique_results.txt
Run Code Online (Sandbox Code Playgroud)
>
是文件重定向,将标准输出重定向到指定文件