2017-04-22 4 views
0

以下のコマンドの出力が必要です。すなわち、読み込みのために出力するには"* master\n remotes/origin/HEAD -> origin/master\n remotes/origin/master\n"です。エリクサーでの読み書きのために適切にフォーマットされた生のテキストを出力するにはどうすればよいですか?

フォーム

* master        
    remotes/origin/HEAD -> origin/master 
    remotes/origin/master    

このSystem.cmdドキュメントで

iex(26)> System.cmd "git", ["-C", "/home/vonhabsi/workpad/Cuis/.git","branch","-a"] 
{"* master\n remotes/origin/HEAD -> origin/master\n remotes/origin/master\n",  
0} 

すなわちコマンドにinto: IO.stream(:stdio, :line)を追加

私はタプルから "* master\n remotes/origin/HEAD -> origin/master\n remotes/origin/master\n"を取る必要がありますどのような機能
iex(27)> System.cmd "git", ["-C", "/home/vonhabsi/workpad/Cuis/.git","branch","-a"], into: IO.stream(:stdio, :line) 
* master 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/master 
{%IO.Stream{device: :standard_io, line_or_bytes: :line, raw: false}, 0} 
iex(28)> 

て出力するように:

* master 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/master 

追加出力{%IO.Stream{device: :standard_io, line_or_bytes: :line, raw: false}, 0}は不要です。 要するに、\n改行で生のテキストをどのように取って、それを印刷するかのように出力しますか?

どのようにファイルにも保存しますか?

+1

あなたは '{s、_} = System.cmd(...)'と 'IO.puts(s) 'のような意味ですか? – Dogbert

答えて

0

タプルから要素を抽出するカップルの方法があります。@DogbertはIEXに、ファイルへの書き込みとして

  • ELEM/2
  • を示唆するように一致

    • パターン>h File.とタブを試して、関数のリストを取得してください。その後、ヘルプを受けるにはh File.write <cr>

      line = System.cmd(...) |> elem(0) 
      File.write("path_to_file", line) 
      

      あなたの文章の行の多くは、あなたが最初のファイルを開きたいかもしれ場合

      一つの可能​​な解決策。 iex>h File.open

    関連する問題