2013-03-14 2 views
0

Я очень новичок в написании сценариев, поэтому простите меня, если это смехотворно очевидный вопрос. Я пишу сценарий отслеживания встреч в Bourne shell (к сожалению, должен использовать Bourne). Мне нужно, чтобы отсортировать назначения в хронологическом порядке с каждым назначением, состоящим из 7 столбцов, разделенных двоеточиями, как, например:Разделители повторного использования после использования awk и сортировки

1: 26: 2013: Суббота: 16.00: 17.30: Барбекю
1: 24: 2013: четверг : 14,00: 15,10: CSS Встреча
1: 25: 2013: Пятница: 12,00: 12,30: Бизнес-ланч
1: 27: 2013: Воскресенье: 10,00: 17,30: Доброволец пляж очистки
2: 24: 2013: Воскресенье: 20.00: 24.00: Сторона
2: 11: 2013: понедельник: 16.00: 17.30: посещение стоматолога
1: 24: 2013: четверг: 11.00: 11.45: Встреча проекта
3: 24: 2013: Воскресенье: 8,00: 11,30: Церковь пикник
2: 8: 2013: Пятница: 12,00: 17,30: Halo турнир
1: 19: 2013: Суббота: 16,00: 20,30: Покер

вот что у меня есть до сих пор, что делает именно то, что я хочу, за исключением того, что он извлекает мои разделители двоеточия. awk -F : '{print $1, $2, $3, $4, $5, $6, $7 |"sort -k 1,1 -k 2,2n -k3,3n -n -o appts.txt"}' appts.txt

1 19 2013 суббота 16,00 20,30 Poker
1 24 2013 Четверг 11,00 11,45 Проект встреча
1 24 2013 четверг 14,00 15,10 CSS Встреча
1 25 2013 Пятница 12,00 12,30 Бизнес-ланч
1 26 2013 Суббота 16.00 17.30 Барбекю

Как мне получить мои разделители двоеточия?

+0

Не должен ли порядок сортировки быть -k 3n -k 1n -k 2n' или что-то в этом роде? – Thomas

ответ

3

Самый простой ответ, не снимайте их в первую очередь. По крайней мере, с моей версией своего рода, он работает, как ожидалось с исходным файлом:

sort -k 1,1 -k 2,2n -k3,3n -n -o appts2.txt < appts.txt 

Хотя, он также поддерживает явно указав разделитель полей (-t). Поэтому, чтобы быть в безопасности, вы можете сказать:

sort -k 1,1 -k 2,2n -k3,3n -n -t: -o appts2.txt < appts.txt 
+0

понял это прямо перед тем, как вы отправили, но спасибо! – user1731199

2

Я нелепо ... не знаю, почему я использовал awk в первую очередь.

Это сделал то, что я хотел просто отлично

sort -k 1,1 -k 2,2n -k3,3n -n -t: -o appts.txt appts.txt