PDA

Показать полную графическую версию : [решено] чередование строк


rimo86
22-11-2011, 18:52
Нужна помощь в написании скрипта в bash, есть файл вида
1320093090,Stop,
1320115307,Start,
1320123359,Stop,
1320173371,Start, # Вот эту строку нужно удалить
1320372563,Start,
1320374546,Stop,
1320410335,Start,
1320433656,Stop,

Соответственно повторяться могут как слова Start, так и Stop.

PhilB
23-11-2011, 18:11
Не понятно по какому критерию надо удалять строки.

rimo86
23-11-2011, 18:42
Нужно чтобы был законченный цикл start-stop. соответственно когда два раза подряд идут строки со Start, то удаляется первая строка где было упоминание. Со стопами наоборот, вторая строка где есть упоминание.

PhilB
23-11-2011, 19:58
Могу предложить следующую команду консоли для решения этой задачи:
awk '/Start/ {st = $0; s = 0;} /Stop/ {if (s == 0) {print st; print $0;} s = 1; } END {if (s == 0) print st}' input > output
где input и output - имена входного и выходного файла соответственно.

rimo86
24-11-2011, 09:37
Спс, то что надо.




© OSzone.net 2001-2012