Вы можете использовать команду t
без метки, чтобы начать следующий цикл при успешной замене
$ cat ip.txt
a foo 123
xyz
fore
1foo
$ sed -e 's/foo/bar/' -e t -e 's/$/baz/' ip.txt
a bar 123
xyzbaz
forebaz
1bar
Из руководства:
t label (test)
Branch to label only if there has been a successful substitution since the last input line was read or conditional branch was taken. The label may be omitted, in which case the next cycle is started.
такой большой и подробный вопрос. Давайте решим это шаг за шагом. Ошибка "Отказано в доступе"
Linux error code
EACCES 13 /* Permission denied */
, когда я искал EACCES
в репозитории sshfs Я нашел только два экземпляра в файле[sshfs.c][1]
один касается прав доступа к файлам в локальном контексте. тот, который вы продемонстрировали.
другое это SSH_FX_PERMISSION_DENIED
ошибка из-за отказа в разрешении ssh.
По имеющимся у меня данным я могу сказать почти наверняка. это Поскольку у вас есть разрешение на локальной машине
Кейсы
printf foo >>.git/logs/HEAD
причина, по которой это дает отказ в разрешении, а не
printf foo >.git/logs/HEAD
либо у вас нет разрешения на удаленную машину, либо удаленные серверы, которые не поддерживают O_APPEND
, см. , проблема 117
вы можете проверить это с помощью strace.
Вот почему часть. Как решить зависит от вашего ответа. какой это случай?
Дайте мне знать, чтобы я мог помочь вам дальше.
Не стесняйтесь комментировать, если вы не согласны.