интерпретация результатов ls -l

$ sed -r 's/.* ([^ ]+\.[^ ]+).* ([^ ]+)$/\1 \2/' orange
orange.5678 you

Объяснение

  • -r использовать расширенные регулярные выражения
  • s / old / new replace old с новым
  • .* любое количество любых символов
  • (некоторые символы) за исключением некоторых символов для ссылки позже при замене
  • [^] + некоторые символы, не являющиеся пробелом
  • \. буквальная точка
  • $ конец строки
  • \ 1 обратная ссылка на сохраненный шаблон

, поэтому s /.* ([^] + \. [^] +) . * ([^] +) $ / \ 1 \ 2 / означает соответствие чему-либо в строке вплоть до пробела, предшествующего некоторым непробельным символам до . , а затем несколько непробельных символов после него (сохраняя эти символы по обе стороны от . ), затем сопоставьте любые символы и сохраните последний набор непробельных символов в строке и замените весь совпадают с двумя сохраненными шаблонами, разделенными пробелом

0
27.07.2021, 07:51
1 ответ

Причина в том, что файлы, указанные как root, принадлежат пользователю rootи, следовательно, не могут быть изменены любым другим пользователем, например ubuntuв вашем случае.
Чтобы ваша программа могла записывать файлы, перечисленные как root, вам необходимо изменить владельца этих файлов с помощью команды chown.
Шаги:

  1. Войдите в систему как пользователь root.
  2. cdв папку с вашими файлами
  3. chown ubuntu:ubuntu *.json

ИЛИ просто выполнить:

  1. cd <to the directory>; sudo chown ubuntu:ubuntu *.json

Надеюсь, это поможет!

0
24.08.2021, 08:35

Теги

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