Linuxif判斷字元串
Ⅰ linux 命令,查看字元是否出現在某字元串中
從文件內容查尋匹配指定字元串的行:
$ grep "被查尋的字元串" 文件名
從文件內容查尋與正則表達式匹配的行:
$ grep –e 「正則表達式」 文件名
查尋時不區分大小寫:
$ grep –i "被查尋的字元串" 文件名
查尋匹配的行數:
$ grep -c "被查尋的字元串" 文件名
從文件內容查尋不匹配指定字元串的行:
$ grep –v "被查尋的字元串" 文件名
從根目錄開始查尋所有擴展名為.log的文本文件,並找出包羅」ERROR」的行
更多請網路一下 linux查找字元串
Ⅱ 每天三分鍾搞定linux shell腳本10 字元串相關的if判斷
字元串比較包括
注意 :這里的符號要 轉義 ,否則變成了重定向了。
運行結果:
注意 :上面的 等號左右兩側 , 中括弧內側 一定要有空格
運行結果:
以上的例子,說明 小寫字母排在字典的後面 (類似於ascii的大小)。
sort 可以對字元串排序,sort 命令會把小寫字母放在前面 。
運行結果:
注意上面的 中括弧內側 一定要有空格。
注意 :有時候想在字元串比較的時候使用 正則表達式 ,可以使用 雙方括弧 ,如:
運行如下:
注意:上面的 雙等號左右兩側,中括弧內側 一定要有空格
Ⅲ 關於linux中shell腳本如何判斷文件名稱中是否含有某字元串
if [ -e filename ];
我覺得是你括弧錯了…此外這種括弧不能用通配符…試試[[]]?不行可以用for代替if
Ⅳ linux中 關於if(!strcmp(argv[i], "-s"))的用法 請問這之中的-s的具體含義 謝謝
就是字元-和字元s組成的字元串-s
strcmp語句將argv[i]地址開始的字元串與-s字元串做比較,兩個字元串自左向右逐個字元相比(按ASCII值大小相比較),直到出現不同的字元或遇'\0'為止。
返回比較結束時的ASCII值,-的ASCII值是45H,s的ASCII值是115H
比如這語句存在main函數中,編譯後成可執行程序test,運行時./test
可接參數,參數傳入argv數組。比如./test
-v
則strcmp返回0即if語句條件滿足;比如./test
abc
則strcmp返回ASCII差值,if語句條件不滿足。你可以試試。
Ⅳ linux下c如何比較兩個字元串內容是否相等
用「==」號可以,但是似乎不太靈,用「strcpy(str1,str2);」為0則相等。請問後者strcpy(str1,str2);怎麼不行額!我是放進了if從句裡面額!
Ⅵ linux c 判斷字元串是否為ip地址
一般地可以通過正則表達式庫進行檢測
也可以手動進行檢測
常見的ip地址是點分十進制的字元串形式
類似
192.168.1.1
10.2.4.1
這種
四個部分每個部分的最大值是255
所以正則表達式簡單點可以是
(d+.){3}d+
但這樣並不能完全正確地匹配ip地址
如果所要匹配的文件中確定出現的類似字元串為ip地址的話就完全沒有問題
准確點可以
(d{1,3}.){3}d{1,3}
然後再對每個數字進行判斷
判斷是否超出了ip地址的范圍
下面是一個簡單的使用正則表達式的代碼
#include<stdio.h>
#include<string.h>
#include<pcre.h>
intmain(intargc,char**argv)
{
char*s="192.168.1.1";
pcre*code;
intrc;
intovector[2*3];
constchar*errptr;
constchar*ip;
interroffet;
char*p;
charbuf[20];
code=pcre_compile("(\d{1,3}\.){3}\d{1,3}",0,
&errptr,&erroffet,NULL);
if((rc=pcre_exec(code,NULL,s,strlen(s),0,0,ovector,2*3))>0)
{
pcre_get_substring(s,ovector,rc,0,&ip);
snprintf(buf,20,"%s",ip);
pcre_free_substring(ip);
for(p=strtok(buf,".");p!=NULL;p=strtok(NULL,"."))
{
if(atoi(p)>255)
gotoend;
}
printf("正確ip! ");
return0;
}
end:
printf("錯誤的ip! ");
pcre_free(code);
return0;
}
Ⅶ 關於linux if多個判斷問題
1 = 1 -a 2 = 2 -a $i = 2
表達式中,=也要和數值空格分開,不然會把 1=1這種當成一個字元串處理
Ⅷ linux下用什麼函數判斷字元串的編碼方式
如題,假設給你一個字元數組
char a[]="abc";
在它的編碼中gb2312和utf-8都一樣
對任意一個字元而言,並沒有編碼格式的概念。同樣的一個字母,在不同編碼集裡面代表不同的東西,當然也有可能恰好代表相同的東西。
編碼集並不是文本本身的屬性,而是觀察者的角度,也就是說你用什麼編碼集來觀察這段文本。——從程序的角度就是,你用什麼軟體去打開它。——編碼識別大多通過非法字元進行識別,也就是說僅僅當我們判斷具有非法的utf-8字元序列的時候,我們判斷一個文本「不是utf-8」編碼,但是我們永遠無法判斷一個文本「是utf-8編碼」。——如果不包含任何非法字元,那麼你就可以用任何編碼去查看他:
例如「逍遙」如果使用BIG5碼,但你還是可以使用GBK碼查看這兩個字,最後得到的是「殊換」。顯然這兩個詞都是合法的,如果僅僅給你這個詞,那麼你無論從理論還是實際上都不可能知道原文的作者究竟是想表達「逍遙」還是「殊換「。