Я чувствую, что вы ищете что-то похожее на getopt
Вам необходимо указать параметры в соответствии с вашим форматом ввода
OptSpecList =
[
{host, $h, "host", {string, "localhost"}, "Database server host"},
{port, $p, "port", integer, "Database server port"},
{dbname, undefined, "dbname", {string, "users"}, "Database name"},
{xml, $x, undefined, undefined, "Output data in XML"},
{verbose, $v, "verbose", integer, "Verbosity level"},
{file, undefined, undefined, string, "Output file"}
].
, а затем позвонить на getopt:parse/2:
getopt:parse(OptSpecList, ["-h", "myhost", "--port=1000", "-x", "file.txt", "-vvv", "dummy1", "dummy2"]).
Вы получите кортеж
{ok,{[{host,"myhost"},
{port,1000},
xml,
{file,"file.txt"},
{dbname,"users"},
{verbose,3}],
["dummy1","dummy2"]}}
ИЛИ сверхпростое решение
, если вы получите данные в виде строки, например
"Process Pid Mello No Status 122 523 GFAF_0 1 Running 125 512 GFAF_235 2 Running 128 987 GFAF_1 3 Stopped"
Разделите по словам
L = string:tokens("Process Pid Mello No Status 122 523 GFAF_0 1 Running 125 512 GFAF_235 2 Running 128 987 GFAF_1 3 Stopped", " ").
["Process","Pid","Mello","No","Status","122","523","GFAF_0",
"1","Running","125","512","GFAF_235","2","Running","128",
"987","GFAF_1","3","Stopped"]
и проверьте, содержит ли элемент префикс "GFAF_"
F = fun(Elem, Acc) ->
case string:find(Elem, "GFAF_", trailing) of
nomatch -> Acc;
_ -> [Elem|Acc]
end end,
lists:foldl(F, [], L).
Вы получите список
["GFAF_1","GFAF_235","GFAF_0"]