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

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

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

  • условная замена строк на число
  • Есть ли простой способ подсчета символов в словах в файле, из терминала?
  • Что означает: & lt; i & gt; подставка для кода?
  • Есть ли альтернатива команде «sed -i» в Solaris?
  • количество слов между двумя фиксированными словами
  • транспонировать наборы из трех строк в столбцы
  • Hellow1 Hellow2 Hellow3 

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

     Hellow1 #Hellow2 Hellow3 

  • Экономически выгодно спаривать каждую строку файла со всеми остальными
  • Манипуляция текста: удаление значений x <= $ input из отсортированного списка и обобщения
  • Объединение строк в одну строку
  • Как получить текст между двумя словами, указанными их индексами?
  • получить первое появление целого в текстовом файле
  • Изменить текст поля внутри двойных котировок
  • 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 
    Linux и Unix - лучшая ОС в мире.