簡體   English   中英

Elixir:在命令行中將內容從文件饋送到函數

[英]Elixir : Feed content from a file to a function in command line

我有一個csv類型的文件。 我希望能夠從命令行調用一個函數,並將該文件的內容(而不是文件本身)提供給它。

我試圖打電話

mix run lib/my_module.ex $(cat tmp.txt)

在我的模塊文件末尾:

IO.puts MyModule.my_func(System.argv) 

內容已正確處理到func,但是System.argv是字符串列表,它丟失了格式,無法正確解析。

如果我改為嘗試

mix run -e "MyModule.my_func(:args)" 

我找不到如何使用cat或其他方式將文件的內容提供給它。

如何使其工作?

嘗試像這樣在引號之間插入: mix run lib/my_module.ex "$(cat tmp.txt)"

在我看來,這像XY問題 僅傳遞文件 ,並模塊內部執行File.read/1

有點像:

mix run lib/my_module.ex tmp.txt

並在您的模塊中:

System.argv
|> File.read!()
|> MyModule.my_func() 
|> IO.puts()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM