所以基本上我有我的輸出如下:修剪文本並添加時間戳?
<span id="PlayerCount">134,015 people currently online</span>
我要的是一個方法來修剪它顯示:
134,015 - 3:24:20AM - Oct 24
誰能幫助?還要注意數字可能會改變,因此可能會輸出當前「>」和「c」之間的所有內容嗎?以某種方式添加時間戳?
在Linux中使用來自終端的命令,這就是所謂的bash正確嗎?
所以基本上我有我的輸出如下:修剪文本並添加時間戳?
<span id="PlayerCount">134,015 people currently online</span>
我要的是一個方法來修剪它顯示:
134,015 - 3:24:20AM - Oct 24
誰能幫助?還要注意數字可能會改變,因此可能會輸出當前「>」和「c」之間的所有內容嗎?以某種方式添加時間戳?
在Linux中使用來自終端的命令,這就是所謂的bash正確嗎?
你也許意思是這樣:
$ echo '<span id="PlayerCount">134,015 people currently online</span>' | sed
-e 's/^[^>]*>//'
-e "s/currently.*$/$(date '+%r %b %d %Y')/"
產生:
134,015 people 03:36:30 PM Oct 24 2011
的echo
只是測試數據。第一個sed
命令將會把第一個>
字符的內容變成空白(即刪除它)。
第二個將從currently
到所有格式的當前日期(儘管我已經添加了一年以來,因爲我對於細節的一些細節)而改變了一切。
爲date
這裏的相關參數爲:可以從date
手冊頁(執行從外殼man date
)獲得
%r locale's 12-hour clock time (e.g., 11:11:04 PM) %b locale's abbreviated month name (e.g., Jan) %d day of month (e.g., 01) %Y year
格式說明符的完整列表。
一個小腳本,這將給你從你的評論中提到的頁面所需的信息是:
#!/usr/bin/bash
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')/"
運行這給了我:
pax$ ./online.sh
132,682 people 04:09:17 PM Oct 24 2011
詳細:
wget
位下拉網頁並將其寫入標準輸出。標準錯誤(進度條)被丟棄。grep
只提取其中包含單詞PlayerCount
的行。head
扔掉了所有,但第一個。sed
去掉了第一個>
字符。sed
將尾隨文本更改爲當前日期和時間。Quickhack(TM):
$ people=$(echo '<span id="PlayerCount">134,015 people currently online</span>' | \
sed -e 's/^.*>\(.*\) people.*$/\1/')
$ echo $people - $(date)
134,015 - Mon Oct 24 09:36:23 CEST 2011
謝謝! :哦,我也喜歡那個。 – Aaron
produce_OUTPUT | grep -o '[0-9,]\+' | while read count; do
printf "%s - %s\n" $count "$(date +'%l:%M:%S %p - %b %e')"
done
我們是在談論這裏bash腳本? – orlp
bash腳本是的,我提取了一點html數據,我想修剪它。 – Aaron
什麼語言?你需要提供更多信息。 – Amy