Как сопоставить строку в файле CSV и удалить строки перед сопоставленной строкой с помощью сценариев оболочки

Мой входной файл CSV, как показано ниже:

AOD,10:40:00.128820,11:00:00.128820,19:00:00.000000,19:00:00.000000,0,0,0,0,0,0,0,0,0,0,0,0,N
AOD,10:45:00.128820,11:00:00.128820,19:00:00.000000,19:00:00.000000,0,0,0,0,0,0,0,0,0,0,0,0,N

AOD,11:00:00.128820,11:00:00.128820,19:00:00.000000,19:00:00.000000,0,0,0,0,0,0,0,0,0,0,0,0,N
AOD,11:00:02.128831,11:00:00.128831,19:00:00.000000,19:00:00.000000,0,0,0,0,0,0,0,0,0,0,0,0,N
AOD,11:00:03.128842,11:00:00.128842,19:00:00.000000,19:00:00.000000,0,0,0,0,0,0,0,0,0,0,0,0,N

Мне нужны только строки, начинающиеся в start_time 11:00:00 и позже. Я должен удалить строки до 11:00:00. Также у меня есть время окончания, скажем, 11:00:01. Мне нужно удалить строки после 11:00:01. Как я могу это сделать?

3 ответа

Я бы сделал что-то вроде

cat data.txt | grep 'AOD,11:[0-9][0-9]\:[0][0]' > result.csv

;)

Предполагая, что вы смотрите на 2-й столбец

awk -F, -v start="11:00:00" -v stop="11:00:01" 'start <= $2 && $2 <= stop'
sed -n '/^[^,]*,11:00:00/,/^[^,]*,11:00:01/p'
Другие вопросы по тегам