chmod: изменение разрешений «datenbank»: операция не поддерживается

Вам просто нужно творчески подойти к разделителю полей:

$ awk 'BEGIN {FS="_|-"} {print $2}' input
5

Хитрость с FSв том, что это не строка; это регулярное выражение.

Чтобы объяснить немного более подробно, как вы просите ниже:

Сценарий awkможет определять блок кода с именем BEGIN, который выполняется до обработки любых входящих данных.

Я использую этот блок кода для определения разделителя полей(FS)с помощью регулярного выражения в виде дефиса(-)или подчеркивания(_).

Следующий блок кода, {print $2}, будет печатать второе поле (i. е. вторая строка символов, разделенная до сих пор разделителем /-|_/), который является 5, который вы ищете. Блок кода без префикса будет выполняться для каждой записи, прочитанной awk.

0
10.09.2019, 18:10
1 ответ

Если вам нужно, чтобы USB-накопитель был доступен в любой системе Windows без предварительной установки специальных драйверов с другого носителя, тогда единственными вариантами являются FAT32 и NTFS (и, возможно, exFAT ). Ни один из них не будет поддерживать настоящие разрешения unix.

Если ваша цель состоит в том, чтобы просто сохранить файлы с неповрежденными разрешениями unix, вы можете использовать tarили какой-либо другой инструмент архивирования для упаковки файлов и информации об их разрешениях в файл tar.bz2или аналогичный. В Windows обычные утилиты WinZip и бесплатные утилиты 7zip прекрасно открывают файлы tar.bz2.

Если файлы должны быть немедленно запущены на USB-накопителе, вы можете использовать параметр монтирования umask=000, чтобы указать разрешения для каталогов и файлов в файловой системе FAT или NTFS, но это все -или -. ] ничего общего :с этой опцией, все файлы и каталоги в файловой системе будут иметь разрешения, эквивалентные chmod 777.

0
28.01.2020, 03:17

Теги

Похожие вопросы