Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: Zeroadhesion в May 19, 2013, 15:37



Титла: [SOLVED] Малко помощ за sed
Публикувано от: Zeroadhesion в May 19, 2013, 15:37
Имам един файл, който се променя през определено време:

Цитат
Currently: Partly Sunny: 29C
c
5/19/2013 Forecast
High: 29 C Low: 11 C Mostly sunny
b
5/20/2013 Forecast
High: 28 C Low: 11 C Partly sunny
c

Искам sed да го чете и да показва като output само това в червеното:

Цитат
Currently: Partly Sunny: 29C
c
5/19/2013 Forecast
High: 29 C Low: 11 C Mostly sunny
b
5/20/2013 Forecast
High: 28 C Low: 11 C Partly sunny
c

"Currently" е винаги там и не се променя, дължината от символи на очертаното в червено се променя, а C винаги е накрая на първи ред. Благодаря!



Титла: Re: Малко помощ за sed
Публикувано от: radoulov в May 19, 2013, 15:50
Код
GeSHi (Bash):
  1. sed 's/Currently: *\(.*\)C$/\1/;q' infile


Титла: Re: Малко помощ за sed
Публикувано от: Zeroadhesion в May 19, 2013, 15:54
Мерси за бързият отговор, но това само отряза първия ред:

(http://store.picbg.net/pubpic/48/7A/e22bff995729487a.png)


Титла: Re: Малко помощ за sed
Публикувано от: radoulov в May 19, 2013, 16:07
Би ли post-нал output-а от:


Код:
od -bc weather | head


Титла: Re: Малко помощ за sed
Публикувано от: Zeroadhesion в May 19, 2013, 16:14
Ето го :)

Код:
0000000 103 165 162 162 145 156 164 154 171 072 040 120 141 162 164 154
          C   u   r   r   e   n   t   l   y   :       P   a   r   t   l
0000020 171 040 123 165 156 156 171 072 040 063 060 103 040 012 143 012
          y       S   u   n   n   y   :       3   0   C      \n   c  \n
0000040 065 057 061 071 057 062 060 061 063 040 106 157 162 145 143 141
          5   /   1   9   /   2   0   1   3       F   o   r   e   c   a
0000060 163 164 012 110 151 147 150 072 040 063 060 040 103 040 114 157
          s   t  \n   H   i   g   h   :       3   0       C       L   o
0000100 167 072 040 061 061 040 103 040 115 157 163 164 154 171 040 163
          w   :       1   1       C       M   o   s   t   l   y       s


Титла: Re: Малко помощ за sed
Публикувано от: neter в May 19, 2013, 16:16
Има един излишен $ в командата от radoulov. Трябва да е
Код
GeSHi (Bash):
  1. sed 's/Currently: *\(.*\)C/\1/;q' infile
а може да махнем и първата звездичка
Код
GeSHi (Bash):
  1. sed 's/Currently: \(.*\)C/\1/;q' infile


Титла: Re: Малко помощ за sed
Публикувано от: Zeroadhesion в May 19, 2013, 16:23
Е благодаря много! И с двете команди става  [_]3 [_]3 [_]3 [_]3


Титла: Re: [SOLVED] Малко помощ за sed
Публикувано от: radoulov в May 19, 2013, 16:27
Ако искаш да премахнеш тhe trailing space:

Код:
s/Currently: *\(.*\)C $/\1/;q


Титла: Re: [SOLVED] Малко помощ за sed
Публикувано от: Zeroadhesion в May 19, 2013, 16:29
Ако искаш да премахнеш тhe trailing space:

Код:
s/Currently: *\(.*\)C $/\1/;q
Идеално, мерси!