Изменить вывод скрипта - PullRequest
0 голосов
/ 19 марта 2012

Этот код:

wget --output-document=- http://runescape.com/title.ws 2>/dev/null \
| grep PlayerCount \
| head -1l \
| sed 's/^[^>]*>//' \
| sed "s/currently.*$/$(date '+%r %b %d %Y')/" \
| cut -d">" -f 3,4 \
| sed 's/<\/span>//'

выводит что-то похожее на:

112,915 people 10:44:54 PM Mar 18 2012

Может кто-нибудь помочь мне сделать это так, что он напечатает, чтобы выглядеть как:

3/18/2012 22:44:54 112,915 people

Спасибо!

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Ваша команда должна быть такой:

wget --output-document=- http://runescape.com/title.ws 2>/dev/null \
| grep PlayerCount \
| head -1l \
| sed 's/^[^>]*>//' \
| sed "s/currently.*$/$(date '+%m\/%d\/%Y %H:%m:%S')/" \
| cut -d">" -f 3,4 \
| sed 's/<\/span>//' \
| awk '{print $3, $4, $1, $2}'
2 голосов
/ 19 марта 2012

Частичный ответ:

date '+%m/%d/%Y %H:%m:%S'

дает вам желаемый формат даты, за исключением того, что в марте задано «03», а не «3».Если вы действительно хотите, чтобы март был 3, то это работает:

date '+%m/%d/%Y %H:%m:%S' | sed -e 's/^0//'

И, если вы хотите превратить 9 марта в 3/9, а не в 03/09, вы можете тренировать Sed в любом изнесколько способов, но этот так же прост, как и любой:

date '+%m/%d/%Y %H:%m:%S' | sed -e 's/^0//' | sed -e 's/^\([[:digit:]]\+\/\)0/\1/'
...