1. 在linux系統如何grep過濾中,不包含某些字元
1、linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用許可權是所有用戶。
2、格式
grep[options]
3、主要參數
[options]主要參數:
-c:只輸出匹配行的計數。
-I:不區分大小寫(只適用於單字元)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字元的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數:
\:忽略正則表達式中特殊字元的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<:從匹配正則表達式的行開始。
\>:到匹配正則表達式的行結束。
[ ]:單個字元,如[A]即A符合要求。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求。
。:所有的單個字元。
* :有字元,長度可以為0。
4、grep命令使用簡單實例:
$ grep 『test』d*
顯示所有以d開頭的文件中包含test的行。
$ grep 『test』aa bb cc
顯示在aa,bb,cc文件中匹配test的行。
$ grep『[a-z]\{5\}』 aa
顯示所有包含每個字元串至少有5個連續小寫字元的字元串的行。
2. linux下怎樣在一個文件裡面查找一個字元串
在normal模式下按下/即可進入查找模式,輸入要查找的字元串並按下回車。版
Vim會跳轉到第一個匹配。權按下n查找下一個,按下N查找上一個。
Vim查找支持正則表達式,例如/vim$匹配行尾的"vim"。 需要查找特殊字元需要轉義,例如/vim$匹配"vim$"。
實戰一下:
1、用vim打開要查找的文件
注意,如果沒有安裝vim,系統會提示安裝語句,復制運行即可安裝vim
3. 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.總結
要注意命令行執行,與腳本文件執行之間的差異性。
4. linux控制字元 是什麼,如col命令。過濾掉控制字元。控制字元是個啥
就是一些會改變終端狀態(控制終端)的字元(包括在ASCII表非字元的那些裡面)
基本上就是一些Ctrl-* 或者 Alt-*之類的 (准確的說是可以用這些鍵輸入的)
5. linux sed命令替換特定字元之後的字元
1、首先進入到Linux系統,分別創建兩個目錄vim1、vim2。
6. linux怎麼刪除指定的字元之間的字元串
sed'/^testres/s_.*NormalTest.__'filename>newfile
7. linux中怎麼去除只包含某個字元的行
只包含和包含的含義不一樣哦。
只包含版
sed "/^-$/d" a.txt > tmp.txt
包含
sed "/-/d" a.txt > tmp.txt
tmp.txt就是你要的文件權.
t:root:/tmp> sed "/^-$/d" a.txt
abc - def
ghi
jik
- abd
ggg
t:root:/tmp> sed "/-/d" a.txt
ghi
jik
ggg
t:root:/tmp> cat a.txt
-
abc - def
ghi
jik
-
- abd
ggg
8. Linux中如何殺掉進程中包含特定字元串的所有進程
kill -9 $(pgrep 要殺死的進程名中所含的字元串),示例:
kill -9 $(pgrep dock)
殺死進程名中含有dock的所有進程
9. shell去掉字元串中的特定字元,如去:"123456789"中的""雙引號
sed 's;pub/test/aaa.txt;d' file
sed命令的s後面第一個字元就是分隔符,分隔符跟你說的特殊字元不一樣就可以版了。
10. Linux 文本篩選特定字元,具體請看裡面
grep '^/bin$' rootdir