當前位置:首頁 » 操作系統 » Linux取字元串

Linux取字元串

發布時間: 2025-04-24 04:25:27

1. linux有什麼命令可以提取指定的字元串

1. 例子

提取字元串以下字元串 error: 與 : 之間的子字元串。並消除空格。

"src/network/misc/nv_net_udp.c:17:fatalerror:nv_net_tools.h:Nosuchfileordirectory"1

2. 命令

echo"src/network/misc/nv_net_udp.c:17:fatalerror:nv_net_tools.h:Nosuchfileordirectory"|sed-r's/.*error:(.*):.*/1/'|seds/[[:space:]]//g1

該命令涉及 sed 命令的』反向引用』章節, 1 代表 (.*)

3. 結果

nv_net_tools.h1

4. 拓展 : 解決編譯錯誤

leon$makeclean&&makeallarm-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/includesrc/common/nv_conf.c-obuild/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/includesrc/network/misc/nv_net_udp.c-obuild/objs/hi3518/src/network/misc/nv_net_udp.o
src/network/misc/nv_net_udp.c:17:fatalerror:nv_net_tools.h:Nosuchfileordirectory
compilationterminated.make:***[build/objs/hi3518/src/network/misc/nv_net_udp.o]Error112345678

note: 在以上編譯過程中我們發現,編譯器提示說找不到nv_net_tools.h文件,而現實中我們也不需要這個文件的包含了,需要刪除包含nv_net_tools.h 文件中的該行代碼。

5.字元串提取 (命令行)

目標字元串

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":012

需要提取 from , to, url , md5, level 等5個關鍵字後面的內容。

//提取 from 內容echo

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0|sed"s/.*from:(.*)/1/"|cut-d','-f1


//提取 to 內容echo

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0|sed"s/.*to:(.*)/1/"|cut-d','-f1


//提取 url 內容echo

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0|sed"s/.*url:(.*)/1/"|cut-d','-f1


//提取 md5 內容echo

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0|sed"s/.*md5:(.*)/1/"|cut-d','-f1


//提取 level 內容echo

"from":"0802070975","to":"0802071013","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0|sed"s/.*level:(.*)/1/"|cut-d','-f112345678910111213141516

6.字元串提取 (腳本文件)

ret_val=""from":"0804020982","to":"0804020998","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0"
echoret_valis:[$ret_val]from="$(echo$ret_val|sed's/.*from":(.*)/1/'|cut-d','-f1|sed's/"//g')"
echofrom:$from
to="$(echo$ret_val|sed's/.*to":(.*)/1/'|cut-d','-f1|sed's/"//g')"
echoto:$to
url="$(echo$ret_val|sed's/.*url":(.*)/1/'|cut-d','-f1|sed's/"//g')"
echourl:$url
md5="$(echo$ret_val|sed's/.*md5":(.*)/1/'|cut-d','-f1|sed's/"//g')"
echomd5:$md5
level="$(echo$ret_val|sed's/.*level":(.*)/1/'|cut-d','-f1|sed's/"//g')"
echolevel:$

執行結果:

ret_valis:["from":"0804020982","to":"0804020998","url":"http://cn.update.mynetvue.com:8060/firmware/.tar.gz","md5":"","level":0]
from:0804020982
to:0804020998
url:http://cn.update.mynetvue.com:8060/firmware/.tar.gzmd5:
level:0

I.總結

要注意命令行執行,與腳本文件執行之間的差異性。

2. linux 中如何截取2個字元串中間的字元

可以用awk、sed、tr、perl都能實現
set s = '"stratum":{"accepted_shares":1,"algorithm"'
set a = `echo $s | awk -F '["/:]' '{print $4}'`

熱點內容
視頻伺服器搭建海康 發布:2025-04-30 23:50:29 瀏覽:95
xp共享怎麼設置密碼 發布:2025-04-30 23:50:24 瀏覽:160
租用電腦主機搭建伺服器 發布:2025-04-30 23:28:06 瀏覽:733
php子類調用父類方法 發布:2025-04-30 23:11:55 瀏覽:678
存檔加密id 發布:2025-04-30 22:20:50 瀏覽:748
mac搭建php環境 發布:2025-04-30 21:58:13 瀏覽:141
雅迪電動車配置有哪些 發布:2025-04-30 21:38:27 瀏覽:161
為什麼用文件存儲取代mysql 發布:2025-04-30 21:17:26 瀏覽:614
我的世界免費伺服器ip 發布:2025-04-30 20:41:26 瀏覽:775
華為雲相冊在哪裡找安卓11 發布:2025-04-30 20:19:59 瀏覽:274