[英]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.