2017-04-13 1 views
0

私は、いくつかのパスを含む入力ファイルを持っています。該当する行は以下の通りです:grepがバックグラウンドプロセスを起動する

initial_solution_file = ../../INIT/foo 

私は何をしたいのは、「私は「INIT」と入力しますように、このパスを表示していましたエイリアスをしていると、シェルは戻ってくる最初のソリューションです:../ ../INIT/foo」

私は何をしようとしたことは次のとおりです。

grep initial_solution_file input_file | awk '{print $3}' | echo "the initial solution is:" `xargs echo` 

それは、所望の出力を提供しますが、私はadditionalyのような何かを得る: [6] 48201 48202

これはどういう意味ですか、それを防ぐ方法は?事前に

おかげ

+0

'grep'の前に' command'を追加してみてください。 'command grep initial_solution_file input_file ...'のように – NullDev

答えて

0
echo "the initial solution is: $(awk '/initial_solution_file/{print $3}' input_file)" 
the initial solution is: ../../INIT/foo 

パイプの必要はありませんが、あなたは$(....)構文を使用して、コマンド置換を行うことができます。また、grepおよびawkは、awkのみで行うことができます。

+0

本当にありがとうbash =) しかし、 "不正な変数名"を返します。 tcshでtcshでそれを行う方法は? – EdouardIFP

+0

私はそれをtcshから実行するbashスクリプトにコピーしました。 おそらくそれを行うには不潔な方法ですが、それは動作します。 – EdouardIFP

関連する問題