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码查看这两个字,最后得到的是“殊换”。显然这两个词都是合法的,如果仅仅给你这个词,那么你无论从理论还是实际上都不可能知道原文的作者究竟是想表达“逍遥”还是“殊换“。