, если удаленная машина напрямую подключена к Интернету:
hostname -I|cut -f1
в противном случае, одно из следующих:
wget -qO - http://whatsmyip.me/
wget -qO - http://ipinfo.io/ip
wget -qO - http://ipecho.net/plain; echo
Во всех случаях должно выполняться на удаленная машина.
Более простое решение с использованием tr
следующим образом:
cat file | tr "," "\n"
Где tr
будет искать запятую ,
и заменять ее новой строкой \n
Вывод:
5LkoVZg0BABCBkD9OieAflA==|list1|true|0|0|0|172661|1.16|186042
5o0QEZg0BABCA3j9OieAflA==|list2|false|0|0|0|0|0|0
5F3NnwwoBABC1Dfrsf9xucw==|list3|false|0|0|0|0|0|0
5FaJmwwoBABC0-frsf9xucw==|...
Обратите внимание, что пробелы перед запятой сохранены.
sedподход:
cat file
5LkoVZg0BABCBkD9OieAflA==|list1, |true|0|0|0|172661|1.16|186042, 5o0QEZg0BABCA3j9OieAflA==|list2|false|0|0|0|0|0|0, 5F3NnwwoBABC1Dfrsf9xucw==|list3|false|0|0|0|0|0|0, 5FaJmwwoBABC0-frsf9xucw==|...
sed 's/, \(\S*==\)/\n\1/g' file
Выход:
5LkoVZg0BABCBkD9OieAflA==|list1, |true|0|0|0|172661|1.16|186042
5o0QEZg0BABCA3j9OieAflA==|list2|false|0|0|0|0|0|0
5F3NnwwoBABC1Dfrsf9xucw==|list3|false|0|0|0|0|0|0
5FaJmwwoBABC0-frsf9xucw==|...
\S*==
-последовательность не -пробельных символов, за которыми следует ==
, рассматриваемая как ведущая последовательность каждой строки