文字列があり、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
各結果を連続して1行で表示するには、引用符で囲みます。- そうでなければ、引用符なしで
echo
基本的$var2
に各「単語」を別々の引数として解釈し、スペースを含む1つずつ印刷するので、最終的に1つの長い文になります。
また、出力をファイルに保存できることを覚えておいてください~/unique_results.txt
。たとえば、次のようになります。
echo $var1 | tr ' ' '\n' | sort | uniq > ~/unique_results.txt
>
ファイルリダイレクトは、標準出力を指定されたファイルにリダイレクトすることです。