0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 33
|
|
1 | |
Как вывести все строки, находящиеся между словами "start" и "stop"?22.04.2013, 10:07. Показов 5376. Ответов 7
Метки нет (Все метки)
Требуется вывести на терминал с помощью awk, все строки, находящиеся между словами "start" и "stop". Проблема в том, как задать для awk номера строк, в которых и находятся "start" и "stop".
0
|
22.04.2013, 10:07 | |
Ответы с готовыми решениями:
7
Записать в файл каждое второе слово, считанное из первого файла между словами START и STOP Во второй файл записать каждое второе слово, считанное из первого файла между словами START и STOP Вывести все символы исходной строки, находящиеся между двумя заданными с клавиатуры символами Имеется таблица с колонками Proсcess, Weight, Start, Stop. В Start и Stop хранятся начало операции и конец соответственно(datetime) |
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
22.04.2013, 10:43 | 2 | |||||
пример
Код
[guest@localhost ~]$ awk 'BEGIN {f=0}; /^stop$/ {f=0}; f {print}; /^start$/ {f=1}' start abc abc def def stop abc start abc abc def def stop [guest@localhost ~]$
1
|
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 33
|
|
23.04.2013, 20:30 [ТС] | 3 |
Спасибо, все работает, но на терминал выводятся строки, находящиеся только между первой парой start-stop, последующие строки сценарий игнорирует, т.е. в вашем примере на терминал выводятся только 3-6 строки.
0
|
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 33
|
||||||
25.04.2013, 14:07 [ТС] | 5 | |||||
У меня упорно выводит первую пару. Кстати, а где у вас ссылка на файл из которого мы выводим строки?
Я пишу
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
25.04.2013, 14:19 | 6 |
строки берутся из потока ввода, потому что не написано, что нужно брать из файла
Код
[guest@localhost sh]$ cat file.txt a1 b1 c1 start a2 b2 c2 stop a3 b3 c3 start a4 b4 c4 stop a5 b5 c5 [guest@localhost sh]$ [guest@localhost sh]$ awk ' > BEGIN {f=0} > /^stop$/ {f=0} > f {print} > /^start$/ {f=1} > ' file.txt a2 b2 c2 a4 b4 c4 [guest@localhost sh]$ значит, файл неправильный
1
|
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 33
|
|
25.04.2013, 14:53 [ТС] | 7 |
Спасибо, все работает, почему не работал предыдущий файл, непонятно, ну да не важно. Вот только еще вопрос возник, если чередование start-stop нарушается, программа работает некорректно, например в таком случае:
Код
a b c start para1 para1 para1 stop e f g h start para2 para2 para2 para2 stop stop i j k start para3 para3 para3 stop Код
$ bash 9 para1 para1 para1 para2 para2 para2 para2
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
25.04.2013, 15:01 | 8 |
Код
[guest@localhost sh]$ awk ' > BEGIN {f=0} > /^stop$/ {f=0} > f {print} > /^start$/ {f=1} > ' file.txt para1 para1 para1 para2 para2 para2 para2 para3 para3 para3 [guest@localhost sh]$ не, всё работает
0
|
25.04.2013, 15:01 | |
25.04.2013, 15:01 | |
Помогаю со студенческими работами здесь
8
Удалить из строки все символы, находящиеся между «А» и «В» Удалить все лишние пробелы между словами (между словами должен быть только один пробел) Строки: удалить все символы, находящиеся между круглыми скобками Из строки удалить все последовательности символов, находящиеся между круглыми скобками Вывести все нечетные числа, находящиеся между двумя заданными числами Удалить из заданной строки все символы , находящиеся между скобками, включая сами скобки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |