Поэтому я использую lsof в сочетании с jq для преобразования в json. Исходный пример вывода:
[
"blah",
"1234",
"yoda",
"561u",
"IPv4",
"297229000",
"0t0",
"TCP",
"15.60.74.17:1511",
"(LISTEN)"
]
]
При использовании с sed как:
sed -e "s/(//" -e "s/)//" | sed 's/.*:\([0-9]\+\).*/"\1",/g'
Вывод выглядит как:
[
"blah",
"1234",
"yoda",
"561u",
"IPv4",
"297229000",
"0t0",
"TCP",
"1511",
"LISTEN"
]
]
Обратите внимание, что пробел не сохранил для "1511" не уверен, что мне не хватает, я уверен, что-то глупо, кто-нибудь знает, что я здесь скучаю?