Вопрос или проблема
<AppendNhere> A H W C
<AppendNhere> A H W C
<AppendNhere> A H W C
Sed '/^/ i N' filename
Я пытался добавить N
с помощью этого, но N
добавляется в начало новых строк, а не в начало существующих строк.
Сначала вам нужно понять “цитирование” (см. man bash
) и регулярные выражения (man 7 regex
) и использовать команду sed
‘s (man sed
“substitute”.
sed -e 's/^/N/' filename
Вы можете сделать это с помощью
sed -e "s/^\(.*\)/N \1/" filename
Это вставляет строку N
в начало строки (^
).
Ответ или решение
Чтобы добавить текст в начало каждой строки с помощью утилиты sed
, нужно правильно использовать символы и синтаксис. Убедитесь, что вы понимаете, как работают регулярные выражения и как sed
обрабатывает текст. Рассмотрим поэтапно, как осуществить данную задачу.
Пример задачи
Предположим, у вас есть файл с содержимым:
A H W C
A H W C
A H W C
Ваше намерение заключается в том, чтобы добавить строку <AppendNhere>
в начало каждой существующей строки, в результате чего должно получиться:
<AppendNhere> A H W C
<AppendNhere> A H W C
<AppendNhere> A H W C
Использование команды sed
Команда sed
является мощным инструментом для обработки текстовых файлов, и в данном случае вам подойдут следующие команды.
Метод 1: Использование простого замещения
Вы можете использовать следующую команду, чтобы вставить текст в начало каждой строки:
sed -e 's/^/<AppendNhere> /' имя_файла
s/^/<AppendNhere> /
— основная команда, где:s
обозначает, что мы собираемся производить замену.^
указывает на начало строки.<AppendNhere>
— текст, который будет добавлен.
Метод 2: Использование команды вставки
Если вы хотите использовать команду вставки, которая добавляет строки непосредственно перед каждой существующей строкой, вы можете воспользоваться таким синтаксисом:
sed -e 'i\<AppendNhere> N' имя_файла
Однако обращаю ваше внимание, что данный метод может не соответствовать вашим требованиям, так как i
вставляет строку перед существующей, а не в начале строк.
Применение на практике
- Создайте файл. Например, создайте текстовый файл
example.txt
с вашими данными. - Запустите команду
sed
. Вызовите команду из терминала:sed -e 's/^/<AppendNhere> /' example.txt
- Проверка результата. Вы можете перенаправить вывод в новый файл, если хотите сохранить изменения:
sed -e 's/^/<AppendNhere> /' example.txt > new_example.txt
Заключение
Таким образом, добавление текста в начало каждой строки с помощью sed
удобно и легко выполняется с помощью замены. Не забудьте протестировать команду на тестовых данных, чтобы убедиться, что она работает в зависимости от ваших требований. Важно понимать, что ошибки в синтаксисе могут привести к неожиданным результатам, поэтому внимательно следите за вводом.