вставить символ в начале указанной строки в файле

Мне нужно вставить символ (#) в начале указанной строки в текстовом файле.

Пример ввода:

Hellow1 Hellow2 Hellow3 

Желаемый выход

 Hellow1 #Hellow2 Hellow3 

  • Как извлечь строку между Nth и Mth вхождениями шаблона?
  • Создание перестановок в списке слов из существующих файлов
  • Поиск дубликатов блоков текста в файле с использованием сценария оболочки
  • найти числа в круглых скобках и округлить их
  • конвертировать шестнадцатеричные в двоичные
  • поля фильтра в файле, без постоянного формата записи
  • Как я могу напечатать строки в файле, который содержит два регулярных выражения, где одна является подстрокой другого
  • Этот ключ получает значение из таблицы поиска в * nix?
  • 3 Solutions collect form web for “вставить символ в начале указанной строки в файле”

    Чтобы вставить # в строку со словом Hellow2 , вы можете использовать sed следующим образом:

     sed 's/^Hellow2/#&/' input.txt >output.txt 

    Чтобы вставить # в начало второй строки текста, вы можете использовать sed следующим образом:

     sed '2s/.*/#&/' input.txt >output.txt 

    & Будет заменено на все, что соответствовало шаблону.

    Я избегаю использования sed -i (редактирование на месте), потому что я не знаю, какое sed вы используете, и большинство реализаций sed используют несовместимые способы обработки этого флага.

    Вместо этого сделайте замену, как указано выше, а затем

     mv output.txt input.txt 

    если вы хотите заменить исходные данные на результат. Это также дает вам возможность убедиться, что оно получилось правильно.

    Эквивалентная вещь с awk :

     awk '/^Hellow2/ { print "#" $0; next } { print }' input.txt >output.txt awk 'NR == 2 { print "#" $0; next } { print }' input.txt >output.txt 

    Ваш вопрос непонятен. Предполагая, что вы хотите прокомментировать конкретный текст:

     sed -i.bak 's/^\(Hellow2\)$/#\1/' 

    Это сделает замену на месте любых строк, которые точно соответствуют строке «Hellow2», и замените их на #, а затем на соответствующую строку.

    Вы можете сделать это с помощью awk :

     awk '{if ($0 == "Hellow2") print "#"$0; else print $0}' yourfile > outputfile 
    Interesting Posts

    Запустить приложение SWT после запуска системы

    Как установить редактор / просмотрщик по умолчанию для Midnight Commander в Sublime

    Изменение имени устройства OpenVPN

    Какая команда или горячая клавиша для остановки запущенной программы в DrJava?

    Клавиатура Mac numpad работает как направленная панель

    Что-то не так с моим скриптом или Bash намного медленнее, чем Python?

    проксимизировать специальную программу для proxychains

    Греп для числа в строке

    Как я могу заставить rsync использовать шифрование и сжатие для передачи файлов после авторизации соединения?

    Запуск цикла for параллельно

    RHEL6 + Ошибка: сжатие xz недоступно

    Пропустить первые 6 строк / строк в текстовом файле с помощью awk

    Мониторинг HTTP-запросов «на лету» в сетевом интерфейсе?

    Как устранить неисправность No Sound на CentOS 6.4 w / USB-гарнитуре?

    OSX: удалить все соответствующие сертификаты по командной строке

    Linux и Unix - лучшая ОС в мире.