killall
- kill процессы по имени. Используйте команду killall
, чтобы отправить сигнал одному или нескольким процессам, соответствующим критериям выбора, таким как имя команды, процессы, принадлежащие конкретному пользователю, или все общесистемные процессы.
pkill
- отправит указанный сигнал (по умолчанию SIGTERM) каждому процессу вместо их вывода на стандартный вывод. pkill
может сигнализировать нескольким процессам, например killall
, но также может использовать расширенные критерии выбора, которые могут включать любую комбинацию:
Command UID Parent Терминал
Вы можете использовать Vim в режиме Ex:
ex -s -c '3i|hello world' -c x file.txt
3
выбрать строку 3
i
вставить текст и новую строку
x
записать, если были внесены изменения (они есть) и выйти
Или путем сопоставления строки:
ex -s -c '/hello/i|world' -c x file.txt
Как насчет чего-то вроде:
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
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
.)
$ awk 'NR==3{print "text to insert"}1' a.txt
01 line
01 line
text to insert
02 line
02 line