Una forma de manejar este escenario es como se muestra:
comando
perl -pe 's|^\d+,\K(\d)?(\d),(\d\d)(\d\d)?(?=,)|($1//0)."$2,".($4//$3)|e' input.txt
Salida
1,02,20,11
1,01,18,111
Explicación:
s|
^\d+,\K (?# keep the first comma separated field to your left)(?# $1 $2) (\d)?(\d), (?# maybe a number followed by a definite number)
(?# $3 $4) (\d\d)(\d\d)? (?# two numbers followed maybe by two more)
(?=,) (?# we should see a comma to our right)
|($1//0)."$2,".($4//$3)|e
($1 // 0) means use 0 in case $1 is undefined, IOW, field two is single digit. ($4 // $3) means use $3 in case $4 is undefined, IOW, pick either of the doublets depending on the number of digits.
El indicador /e en el comando s/// tratará el RHS como un código Perl y lo evaluará con los parámetros proporcionados y colocará el resultado de esta evaluación como el RHS del comando s///.
Проверьте nextcloud-это может быть излишним для вас, но довольно легко настроить сервер -на стороне (он даже имеет оснастку ! ). Я не совсем уверен, что вы беспокоитесь о безопасности, но он предназначен для общедоступного Интернета, поэтому все, о чем вы беспокоитесь, вероятно, может быть покрыто, и вы можете настроить несколько учетных записей пользователей с доступом к различным наборам. файлы.
Клиент -мудрый, Nextcloud имеет приятный веб-интерфейс, если вы хотите просто быстро загружать и скачивать файлы (как клиент входа в систему, так и вход в систему -меньше загружать и скачивать только общие ссылки ), и клиенты синхронизации dropbox -esq для Windows, OSx, Linux, Android и iOS.
Это тоже все СОПО:)
У SAMBA не больше и не меньше угроз безопасности, чем у любого другого приложения, которое может делать то, что делает; В Debian есть простое руководство .
Android-клиентов для SAMBA предостаточно в магазине Google Play , и у TechRepublic есть HOWTO для вас.
У меня есть несколько идей, которые я записал для вас ниже:
ВАРИАНТ 1
Если у вас есть свободная машина с Windows или даже компьютер/ноутбук, который вы используете под управлением Windows, создайте общий ресурс Windows и разместите его в сети с этого ПК по адресу, например :\computername\sharedfoldername
, а затем установите SAMBA на ваш компьютер с CentOS и используйте команду:
smbclient -L WINDOWS_COMPUTER_NAME_OR_IP_ADDRESS
как ROOT в терминале CentOS. Убедитесь, что у вас есть IPv4-адрес или сетевое имя этого компьютера с Windows, чтобы заменить WINDOWS_COMPUTER_NAME_OR_IP_ADDRESS
в этой команде. Затем вы можете подключиться к папке в CentOS или просто получить доступ к сетевому диску.
Чтобы получить доступ к сетевому диску, откройте проводник на CentOS (у меня Caja )и найдите местоположение:
smb://WINDOWS_COMPUTER_NAME_OR_IP_ADDRESS/sharedfoldername/
Но снова замените IP-адрес/имя компьютера и общее имя Windows. Он запросит у вас учетные данные. Вы можете войти анонимно, но если у вас есть защищенные папки, используйте учетные данные с компьютера Windows.
(Если вы не знаете, чтобы создать общий ресурс Windows для сети, создайте папку на локальном диске хост-компьютера Windows, щелкните ее правой кнопкой мыши и найдите параметр общего доступа, выберите, к кому вы хотите получить доступ (если вы выберете конкретного пользователя на хост-компьютере с Windows, то есть учетные данные, которые вам нужно будет использовать для подключения из CentOS ), и нажмите «Поделиться», это даст вам путь к местоположению (/имя_компьютера/ общая папка/ )в сети.Вы можете получить к нему доступ с ЛЮБОГО ПК с Windows или компьютера с CentOS в сети.
ВАРИАНТ 2:
Найдите маршрутизатор и вставьте жесткий диск/USB-накопитель в USB-разъем на его задней панели. Используйте компьютер с Windows для доступа к диску в сети, тогда для его размещения не требуется машина, и это бесплатно. -Вы можете получить к нему доступ, открыв проводник в Windows и введя путь:
/192.168.******/
*представляет собой IP-адрес вашего маршрутизатора, который совпадает с тем, который вы будете использовать для его настройки в Интернете, и будет отображаться где-то на задней панели. Получив доступ к компьютеру в вашей сети, вы можете увидеть все подключенные диски — вы даже можете ПОДКЛЮЧИТЬ СЕТЕВОЙ ДИСК к своему ПК с WINDOWS, щелкнув правой кнопкой мыши и выбрав карту. Затем это работает как своего рода общий сетевой диск, доступный всем в сети (, если вы не укажете, какие пользователи могут получить доступ )и автоматически подключаются в Windows. К сожалению, я еще не знаю, как получить доступ к этому сетевому диску с маршрутизатора на CentOS или Android... — но есть несколько видеороликов на YouTube или онлайн-уроки, которые объясняют, как это сделать, но ни один из них не помог мне. Я предпочитаю вариант 1, потому что я знаю, как получить доступ из CentOS, и это удобно, потому что у меня есть старый ноутбук с Windows в шкафу в спящем режиме, но он всегда хранит эти файлы. Вы можете сделать столько акций, сколько захотите, так что я нахожу это очень удобным.
Насчет Android — не уверен, возможно, вы сможете найти что-нибудь, чтобы подключить его к (, возможно, к SAMBA )в магазине игр...?
Проблемы с безопасностью при использовании SAMBA. Я их не замечал, и уже некоторое время пользуюсь этим.
Не знаю, будет ли это работать с Windows, но попробуйте woof(на github). Это простой 1 -файловый скрипт Python3.
Чтобы поделиться файлом или каталогом (, он будет запакован )в сеть:
woof <file>
Он печатает URL-адрес, по которому обслуживается файл.
Чтобы получить файл из сети (вам нужно tar/архивировать каталог в 1 файл):
woof -U
URL будет формой загрузки.