Насколько я понимаю, у вас есть файл text
, который выглядит примерно так:
$ cat text
1
2
3
4
5
И вы хотите извлечь 3-ю и 5-ю строки и поместить их в середину некоторых операторов echo
. В этом случае попробуйте:
$ { echo 'Some text'; echo 'Some text'; echo -n 'Some text'; echo -n "$(sed -n 3p text)$(sed -n 5p text)"; echo 'Some text'; echo 'Some text'; } >file
$ cat file
Some text
Some text
Some text35Some text
Some text
Вышеупомянутое может быть выполнено одной командой echo
:
$ echo $'Some text\nSome text\nSome text'"$(sed -n 3p text)$(sed -n 5p text)"$'Some text\nSome text' >file
$ cat file
Some text
Some text
Some text35Some text
Some text
Или одной командой printf
:
$ printf 'Some text\nSome text\nSome text%s%sSome text\nSome text\n' "$(sed -n 3p text)" "$(sed -n 5p text)" >file
$ cat file
Some text
Some text
Some text35Some text
Some text
В приведенном выше примере используются команды sed, такие как:
sed -n 3p text
Здесь -n
- это параметр, который сообщает sed не печатать ничего, если мы явно не попросим об этом. 3p
- это команда, которая сообщает sed напечатать третью строку. Точно так же мы используем 5p
, если хотим напечатать пятую строку.
Решение для awk (подсказка: Runium):
awk '
BEGIN{
printf "%s","Some text\nSome text\nSome text"
}
NR>5 {exit}
NR==3 || NR==5 {printf "%s", $0}
END{
printf "%s","Some text\nSome text\n"
}' text
Без -h
задание удаляется из таблица активных вакансий, с -h
ее нет.
Все описано в руководстве:
disown [-ar] [-h] [jobspec ...]
(...)
If the -h option is given, each jobspec is not removed
from the table, but is marked so that SIGHUP is not sent to the
job if the shell receives a SIGHUP.
Чтобы увидеть разницу, запустите задания
после отказа от задания с -h
и без него.