[英]Arithmetic in web scraping in a shell
所以,我在這里有示例代碼:
#!/bin/bash
clear
curl -s https://www.cnbcindonesia.com/market-data/currencies/IDR=/USD-IDR |
html2text |
sed -n '/USD\/IDR/,$p' |
sed -n '/Last updated/q;p' |
tail -n-1 |
head -c+6 && printf "\n"
exit 0
這應該打印出一些數字范圍 14000~15000
讓我們從最基本的開始,為了打印result + 1
我必須做什么? 因此,如果打印輸出為 14000 並將其增加到 1 變為 14001。我認為 html2text 的結果是不可計算的,因為它應該類似於字符串 output 而不是 integer。
我想知道的更高級的是如何計算 2 個 curl 結果的結果?
$ num=$(xidel -se '//div[@class="mark_val"]/span[1]/text()' 'https://url')
$ num=$((${num//,/}+1)) # num was 14050
$ echo $num
14051
$((...))
是算術代換。 完成算術運算后,整個事情都被表達式的值所取代。 見http://mywiki.wooledge.org/ArithmeticExpression
命令替換: "$(cmd "foo bar")"
導致使用參數 'foo bar' 執行命令 'cmd' 並且 "$(..)" 將被output替換。 請參閱http://mywiki.wooledge.org/BashFAQ/002和http://mywiki.wooledge.org/CommandSubstitution
您可以直接在xidel中計算,感謝Reino使用xquery語法:
$ xidel -s <url> e 'replace(//div[@class="mark_val"]/span[1],",","") + 1'
並做 2 個值的加法運算:
$ xidel -s <url> -e '
let $num:=replace(//div[@class="mark_val"]/span[1],",","")
return $num + $num
'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.