一日兩計(jì):各種符號轉(zhuǎn)數(shù)字與快速獲取 IP
今天我們來看兩個(gè)很有用的小技巧。
奇形怪狀的數(shù)字轉(zhuǎn)阿拉伯?dāng)?shù)字
我們知道,在某些場景下面,有些人會使用各種奇奇怪怪的符號來表示數(shù)字。例如有些人寫自己的 QQ 號,是這樣寫的:
加扣:五⑦捌二3玖
對于這種奇奇怪怪的數(shù)字,如果我們想要批量轉(zhuǎn)化為數(shù)字,可能要提前創(chuàng)建一個(gè)字典來映射:
- {'一': 1, '二': 2, '三': 3, ...}
顯然,這樣寫起來非常麻煩。那么有沒有什么辦法來解決這個(gè)問題呢?實(shí)際上 Python 是認(rèn)識這些表示數(shù)字的符號的,我們不需要提前設(shè)置任何映射,Python 自動就能轉(zhuǎn)換。例如:
- from unicodedata import numeric
- print(numeric('五'))
- print(numeric('⑦'))
運(yùn)行效果如下圖所示:
所以,對于上面這種特殊的數(shù)字,我們可以很容易地轉(zhuǎn)換成阿拉伯?dāng)?shù)字:
- from unicodedata import numeric
- data = '五⑦捌二3玖'
- result = 0
- for char in data:
- result = 10 * result + int(numeric(char))
- print(result)
Linux 如何快速獲取本機(jī) IP 字符串
在服務(wù)器上,有些腳本在運(yùn)行的時(shí)候,需要傳入它所在服務(wù)器的 IP 地址。但這些腳本具體運(yùn)行在哪個(gè)服務(wù)器上,這是由 K8S 這類的東西管理的,我們提前不知道腳本會運(yùn)行在哪個(gè)服務(wù)器上,所以不能提前設(shè)置。
如果你的腳本是 Python 開發(fā)的,那么顯然你可以直接在 Python 里面獲得當(dāng)前服務(wù)器的 IP 地址。但不是所有編程語言都像 Python 這么方便。而且有時(shí)候你是通過.sh文件來調(diào)用開源項(xiàng)目。
所以,如何使用shell 命令獲取 IP 地址呢?
老版本的 Ubuntu 可以使用ifconfig命令查看當(dāng)前 IP,如下圖所示:
新版本的 Ubuntu 可以使用ip addr,如下圖所示:
無論是哪種方法,如何把其中的 IP 地址提取出來呢?這個(gè)時(shí)候我們可以使用grep配合awk實(shí)現(xiàn)。大家可以試一試,如何寫才能把其中的10.0.0.4。
但實(shí)際上,我們有一種更簡單的方法:
- hostname -i
運(yùn)行效果如下圖所示:
本文轉(zhuǎn)載自微信公眾號「未聞Code」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系未聞Code公眾號。