Джон фактически ответил на большую часть вашего вопроса. Однако я заметил, что вы собираетесь редактировать на месте, предоставив опцию -i
для sed
. Обратите внимание, что этот параметр принимает необязательный аргумент SUFFIX. Если предоставляется SUFFIX, то резервная копия входного файла создается путем добавления SUFFIX к его имени. Весьма вероятная проблема в вашей командной строке состоит в том, что буква 'r' в -ir
интерпретируется как суффикс резервной копии, а не как отдельный параметр -r
. Для достижения желаемого эффекта (если вы не хотите создавать резервные копии файлов во время редактирования на месте), не объединяйте другие параметры с -i
(или убедитесь, что i
всегда на последнем месте):
# All these do the same thing (in-place editing using extended regular expressions)
sed -r -i ...
sed -i -r ...
sed -ri ...
# This one backs up input files by appending the letter 'r' to their names
# (and DOES NOT use extended regular expressions)
sed -ir ...