Найдите строку и добавьте # в начало этой строки.

Родительский каталог — это каталог, содержащий элемент:

  • Для файла путь к его родительскому элементу — ., потому что именно туда помещается файл. Сам файл ./file.
  • Для каталога родителем является .., а .— это сам каталог.

Это общее обозначение для Linux, и оно широко распространено. Теоретически некоторые языки могут использовать другую нотацию, но я не могу привести пример.

Вот иллюстрация с использованием абсолютных путей, из которых вы можете легко вывести относительные пути силой своего мозга.

$ echo 'readlink -f "$0"' > script
$ ln -s script link
$ chmod +x script
$./script 
/home/tomas/x/script
$./link 
/home/tomas/x/script
$ readlink -f.
/home/tomas/x
$ readlink -f..
/home/tomas
0
19.01.2020, 04:48
3 ответа

Вы прямо заявили, что хотите найти решение, используя vi. Но этого также можно добиться с помощью однострочной -инструкции sed

.
sed -i -e 's/.*CPU_check/# &/' -e 's/.*Memory_check/# &/' crontab

Это решение изменяет встроенный файл. Вы можете сохранить резервную копию файла, изменив флаг -iна -i.bakв вызове sed.

0
28.01.2020, 02:21

в VI,

:g/CPU_check/s/^/#/

где

  • :скажите vi перейти в командный режим
  • gприменить «глобально» (для нескольких строк )без g будет применяться только к первой строке.

  • /CPU_check/сопоставление адресной строкиCPU_CHECK

  • sзамена
  • /^/начало строки (с)
  • /#/#знак

выполнить другую замену

сохранить и выйти

:x
3
28.01.2020, 02:21

Предполагая, что под "vi" вы подразумеваете фактическое vi(, а неvim):

:set extended
:g/(CPU|Memory)_check/s/^/#/

Это сначала включает расширенные регулярные выражения в шаблонах поиска с set extended, а затем применяет заменуs/^/#/(вставляет символ#-в начале строки )ко всем строкам, содержащим строку CPU_checkили Memory_check.

В vimвы можете использовать

:g/\(CPU\|Memory\)_check/s/^/#/

или

:g/\v(CPU|Memory)_check/s/^/#/

сделать то же самое.

Экранирование \vв vimпозволяет vimиспользовать распознавание шаблона как расширенное регулярное выражение. vэто \vсокращение от «очень волшебное» (см. :help magicвvim).


В edбез поддержки расширенных регулярных выражений можно было использовать две отдельные команды редактирования

g/Memory_check/s/^/#/
g/CPU_check/s/^/#/

С sed, который поддерживает расширенные регулярные выражения через параметр -E:

sed -E '/(CPU|Memory)_check/s/^/#/'

Или со стандартными sed,

sed -e '/CPU_check/s/^/#/' -e '/Memory_check/s/^/#/'
0
28.01.2020, 02:21

Теги

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