Надо скопировать пару строк из одного файла (.INSTALL) в любом пакете арча в другой (doinst.sh) в слаке. Конкректно в .INSTALL есть что то типа
.post_install(){
update-desktop-database -q
}
Надо вытащить только update-desktop-database -q и вставить это в doinst.sh. Вопрос как sed это сделать ?
Скопировать пару строк из файла в другой
Модераторы: /dev/random, Модераторы разделов
-
- Модератор
- Сообщения: 4823
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Скопировать пару строк из файла в другой
Вставить нужно в определённое место или в конец прикрепить?
Если в конец, то sed не нужен.
решит проблему.
Если в конец, то sed не нужен.
Код: Выделить всё
grep update-desktop-database /path/to/.INSTALL >> /path/to/doinst.sh
решит проблему.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
- Сообщения: 117
Re: Скопировать пару строк из файла в другой
SLEDopit писал(а): ↑05.12.2012 12:10Вставить нужно в определённое место или в конец прикрепить?
Если в конец, то sed не нужен.
Код: Выделить всё
grep update-desktop-database /path/to/.INSTALL >> /path/to/doinst.sh
решит проблему.
Это не совсем то, между post_install(){ и } могут быть любые строки и не одна
-
- Модератор
- Сообщения: 4823
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Скопировать пару строк из файла в другой
ну так бы сразу и объяснили.SergMarkov15 писал(а): ↑05.12.2012 12:38Это не совсем то, между post_install(){ и } могут быть любые строки и не одна
Код: Выделить всё
sed -n '/.post_install(){/,/}/{/}\|^.post_install(){/d;p}' /path/to/.INSTALL >> /path/to/doinst.sh
либо чуть короче, но в два захода:
Код: Выделить всё
sed -n '/.post_install(){/,/}/p' /path/to/.INSTALL | sed '1d;$d' >> /path/to/doinst.sh
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
- Сообщения: 117
Re: Скопировать пару строк из файла в другой
SLEDopit писал(а): ↑05.12.2012 14:03ну так бы сразу и объяснили.SergMarkov15 писал(а): ↑05.12.2012 12:38Это не совсем то, между post_install(){ и } могут быть любые строки и не одна
Код: Выделить всё
sed -n '/.post_install(){/,/}/{/}\|^.post_install(){/d;p}' /path/to/.INSTALL >> /path/to/doinst.sh
либо чуть короче, но в два захода:
Код: Выделить всё
sed -n '/.post_install(){/,/}/p' /path/to/.INSTALL | sed '1d;$d' >> /path/to/doinst.sh
мм, что то получается пустой doinst.sh Если что то bash
-
- Модератор
- Сообщения: 4823
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Скопировать пару строк из файла в другой
как запускаете?
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
- Сообщения: 117
-
- Модератор
- Сообщения: 4823
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Скопировать пару строк из файла в другой
Код: Выделить всё
$ cat 1
jskal
.post_install(){
update-desktop-database -q
jdksl
}
dkls;
$ cat 2
test
test
$ sed -n '/.post_install(){/,/}/p' 1 | sed '1d;$d' >> 2
$ cat 2
test
test
update-desktop-database -q
jdksl
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.