Используйте can sed:
sed 's/:/ family:/' yourfile.txt
Это заменит любое :
на family:
, которое достигает желаемого результата.Возможно, вам придется настроить регулярное выражение, хотя, в случае * :
также появляется в другом месте текста.
Обновление: Я не уверен, что вы хотите с Я хочудобавьте слово «активный» в поле 1 файла, разделенного пробелом , поскольку вы не приводите пример для этого.
Обновление 2:
Он заменит только первыйпоявление :
.Однако если вы хотите заменить что-то посередине, вам просто нужно захватить данных перед разделителем:
sed 's/^\(.*:.*\):/\1 family:/' test.txt
В этом примере добавляется family
перед третьим полем.\(.*:.*\)
захватывает символы до и после первого :
(то есть значения первого и второго поля).Следующие :
будут заменены этими символами (\1
относится к первой группе захвата), за которыми следует family:
.Остальная часть линии остается нетронутой.