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

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

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

  • Как подсчитать время, когда в файле появляется конкретный символ?
  • Добавьте каждые две строки подряд в колонку и разделите ее на предыдущую и напечатайте
  • Извлечь диаграмму соответствия n-й линии и следующие N строк
  • Как проверить, имеет ли файл разделитель табуляции и имеет 8 столбцов?
  • Добавить <script> в нижней части html-файла?
  • Как я могу обернуть текст при определенном размере столбца?
  • Hellow1 Hellow2 Hellow3 

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

     Hellow1 #Hellow2 Hellow3 

  • Как получить конкретное поле строки
  • Как подсчитать наличие шаблона в строке
  • Как найти матч с окружающими словами?
  • Linux-эквивалент команды «начать» Cisco
  • Добавить столбец в таблицу
  • переформатирование вывода с выровненными столбцами
  • 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 - лучшая ОС в мире.