Вставка текста в определенный номер строки

killall - kill процессы по имени. Используйте команду killall , чтобы отправить сигнал одному или нескольким процессам, соответствующим критериям выбора, таким как имя команды, процессы, принадлежащие конкретному пользователю, или все общесистемные процессы.

pkill - отправит указанный сигнал (по умолчанию SIGTERM) каждому процессу вместо их вывода на стандартный вывод. pkill может сигнализировать нескольким процессам, например killall , но также может использовать расширенные критерии выбора, которые могут включать любую комбинацию:

Command UID Parent Терминал

12
22.03.2016, 23:16
4 ответа

Вы можете использовать Vim в режиме Ex:

ex -s -c '3i|hello world' -c x file.txt
  1. 3 выбрать строку 3

  2. i вставить текст и новую строку

  3. x записать, если были внесены изменения (они есть) и выйти

Или путем сопоставления строки:

ex -s -c '/hello/i|world' -c x file.txt
19
27.01.2020, 19:54

Как насчет чего-то вроде:

head -n 2 ./file.txt > newfile.txt
echo "text to insert" >> newfile.txt
tail -n +3 ./file.txt >> newfile.txt
mv newfile.txt file.txt
8
27.01.2020, 19:54

sed было бы традиционным выбором ( GNU sed, вероятно, имеет более легкую форму, чем эта).

$ cat input
01 line
01 line
02 line
02 line
$ sed '2a\
text to insert
' < input
01 line
01 line
text to insert
02 line
02 line
$ 

Или, что весьма традиционно, ed (бонус! Редактирование на месте без непереносимой формы sed -i ).

$ (echo 2; echo a; echo text to insert; echo .; echo wq) | ed input
32
01 line
47
$ cat input
01 line
01 line
text to insert
02 line
02 line
$ 

(Это не имеет ничего общего с bash .)

10
27.01.2020, 19:54
$ awk 'NR==3{print "text to insert"}1' a.txt
01 line
01 line
text to insert
02 line
02 line
12
27.01.2020, 19:54

Теги

Похожие вопросы