重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
grep eth2 /etc/udev/rules.d/70-persistent-net.rules |cut -d, -f4 | sed 's/ATTR{address}==//g'
我們提供的服務有:成都網站設計、網站建設、微信公眾號開發、網站優化、網站認證、滎經ssl等。為上千家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的滎經網站制作公司
# cat /proc/meminfo |grep -w "MemTotal"
MemTotal:? ? ? 32781228 kB
使用tr命令截取字符串
# cat /proc/meminfo |grep -w "MemTotal" | tr -cd "[0-9]"
32781228
參考鏈接:
從 截去 的角度上說,總結為: 左#右%
從 截取 的角度上說,反過來。
其中,string 表示要截取的字符,chars 是指定的字符(或者子字符串), * 是通配符的一種,表示任意長度的字符串。
*chars 連起來使用的意思是:忽略左邊的所有字符,直到遇見 chars(chars 不會被截取)。
如果希望直到最后一個指定字符(子字符串)再匹配結束,那么可以使用##,具體格式為:
2.使用 % 截取左邊字符
使用%號可以截取指定字符(或者子字符串)左邊的所有字符,具體格式如下:
請注意 * 的位置,因為要截取 chars 左邊的字符,而忽略 chars 右邊的字符,所以*應該位于 chars 的右側。其他方面%和#的用法相同,這里不再贅述,僅舉例說明:
1. 例子
提取字符串以下字符串 error: 與 : 之間的子字符串。并消除空格。
"src/network/misc/nv_net_udp.c:17:?fatal?error:?nv_net_tools.h:?No?such?file?or?directory"1
2. 命令
echo?"src/network/misc/nv_net_udp.c:17:?fatal?error:?nv_net_tools.h:?No?such?file?or?directory"?|?sed?-r?'s/.*error\:(.*)\:.*/\1/'?|?sed?s/[[:space:]]//g1
該命令涉及 sed 命令的’反向引用’章節, \1 代表 (.*)
3. 結果
nv_net_tools.h1
4. 拓展 : 解決編譯錯誤
leon$??make?clean??make?all?arm-hisiv100nptl-linux-gcc?-c?-fPIC?-Wall?-g?-ggdb?-O0?-DHI3518_CHIP?-DLINUX?-I./src/include?-I./src/include/common?-I./src/include/camera?-I./src/include/conf?-I./src/include/log?-I./src/include/network?-I./src/include/upnp?-I/home/leon/nvc/arm-hisiv100nptl-linux/include?src/common/nv_conf.c?-o?build/objs/hi3518/src/common/nv_conf.o/*省略中間部分*/arm-hisiv100nptl-linux-gcc?-c?-fPIC?-Wall?-g?-ggdb?-O0?-DHI3518_CHIP?-DLINUX?-I./src/include?-I./src/include/common?-I./src/include/camera?-I./src/include/conf?-I./src/include/log?-I./src/include/network?-I./src/include/upnp?-I/home/leon/nvc/arm-hisiv100nptl-linux/include?src/network/misc/nv_net_udp.c?-o?build/objs/hi3518/src/network/misc/nv_net_udp.o
src/network/misc/nv_net_udp.c:17:?fatal?error:?nv_net_tools.h:?No?such?file?or?directory
compilation?terminated.make:?***?[build/objs/hi3518/src/network/misc/nv_net_udp.o]?Error?112345678
note: 在以上編譯過程中我們發現,編譯器提示說找不到nv_net_tools.h文件,而現實中我們也不需要這個文件的包含了,需要刪除包含nv_net_tools.h 文件中的該行代碼。
5.字符串提取 (命令行)
目標字符串
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0?12
需要提取 from , to, url , md5, level 等5個關鍵字后面的內容。
//提取 from ?內容echo
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0?|??sed?"s/.*from:\(.*\)/\1/"?|??cut?-d?','?-f1
//提取 to 內容echo
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0?|??sed?"s/.*to:\(.*\)/\1/"?|??cut?-d?','?-f1
//提取 url ?內容echo
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0?|??sed?"s/.*url:\(.*\)/\1/"?|??cut?-d?','?-f1
//提取 md5 內容echo
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0?|??sed?"s/.*md5:\(.*\)/\1/"?|??cut?-d?','?-f1
//提取 level 內容echo
"from":"0802070975","to":"0802071013","url":"","md5":"ace4b34383f964442a591559d0afb296","level":0?|??sed?"s/.*level:\(.*\)/\1/"?|??cut?-d?','?-f112345678910111213141516
6.字符串提取 (腳本文件)
ret_val="\"from\":\"0804020982\",\"to\":\"0804020998\",\"url\":\"\",\"md5\":\"408d261924e6c271200fdf14d3a230cc\",\"level\":0"
echo?ret_val?is?:?[?$ret_val?]from="$(echo?$ret_val?|?sed?'s/.*from\"\:\(.*\)/\1/'?|??cut?-d?','?-f1?|??sed?'s/"http://g')"
echo?from:?$from
to="$(echo?$ret_val?|?sed?'s/.*to\"\:\(.*\)/\1/'?|??cut?-d?','?-f1?|??sed?'s/"http://g')"
echo?to:?$to
url="$(echo?$ret_val?|?sed?'s/.*url\"\:\(.*\)/\1/'?|??cut?-d?','?-f1?|??sed?'s/"http://g')"
echo?url:?$url
md5="$(echo?$ret_val?|?sed?'s/.*md5\"\:\(.*\)/\1/'?|??cut?-d?','?-f1?|?sed?'s/"http://g')"
echo?md5:?$md5
level="$(echo?$ret_val?|?sed?'s/.*level\"\:\(.*\)/\1/'?|??cut?-d?','?-f1?|?sed?'s/"http://g')"
echo?level:?$level12345678910111213141516171819
執行結果:
ret_val?is?:?[?"from":"0804020982","to":"0804020998","url":"","md5":"408d261924e6c271200fdf14d3a230cc","level":0?]
from:?0804020982
to:?0804020998
url:?:?408d261924e6c271200fdf14d3a230cc
level:?0
I.總結
要注意命令行執行,與腳本文件執行之間的差異性。
可以用awk、sed、tr、perl都能實現
set s = '"stratum":{"accepted_shares":1,"algorithm"'
set a = `echo $s | awk -F '["/:]' '{print $4}'`