导航:首页 > 操作系统 > linux字符串

linux字符串

发布时间:2022-02-06 00:04:56

Ⅰ 在linux命令行中,怎么样从一行字符中输出指定格式的字符串

command | sed 's#.*\([0-9][0-9]:[0-9][0-9]\).*#\1'
# command是你那条输出的命令,将结果用管道传递给sed,匹配 nn:nn 这样的格式

Ⅱ 总结linux替换字符串的几种方法

一)通过vi编辑器来替换。
vi/vim 中可以使用 :s 命令来替换字符串。
:s/well/good/ 替换当前行第一个 well 为 good
:s/well/good/g 替换当前行所有 well 为 good
:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin

(二)直接替换文件中的字符串。(此法不用打开文件即可替换字符串,而且可以批量替换多个文件。)
1.perl命令替换,参数含义如下:
-a 自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定
-F 指定-a的分隔符,可以使用正则表达式
-e 执行指定的脚本。
-i<扩展名> 原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份。
-l 对输入内容自动chomp,对输出内容自动添加换行
-n 自动循环,相当于 while(<>) { 脚本; }
-p 自动循环+自动输出,相当于 while(<>) { 脚本; print; }
用法示例:
perl -p -i.bak -e 's/foo/bar/g' *.c
将所有C程序中的foo替换成bar,旧文件备份成.bak

perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak
将当前文件夹下lishan.txt和lishan.txt.bak中的“shan”都替换为“hua”

perl -i.bak -pe 's/(d+)/ 1 + $1 /ge' file1 file2
将每个文件中出现的数值都加一

2.sed命令下批量替换文件内容

格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名

-i 表示inplace edit,就地修改文件

-r 表示搜索子目录

-l 表示输出匹配的文件名
s表示替换,d表示删除

示例:sed -i "s/shan/hua/g" lishan.txt

把当前目录下lishan.txt里的shan都替换为hua 各个Linux详细命令介绍及应用可如下进行查找

Ⅲ Linux下字符串截断符是什么

是不是"*fo"喔..
说实在的LINUX我还真的很少去接触过. 答案补充 我更想问你为什么会去理解这个如此费解的东西呢>??
WINS 的字符串确实有%00的字符串数字.但这个是变量也... 答案补充 function trimBody($theText, $lmt=500, $s_chr="\n", $s_cnt=2)

一个实现字符串 截断的函数。

function trimBody($theText, $lmt=500, $s_chr="\n", $s_cnt=2) {
$pos = 0;
$trimmed = FALSE;
for ($i = 1; $i <= $s_cnt; $i ) {
if ($tmp = strpos($theText, $s_chr, $pos 1)) {
$pos = $tmp;
$trimmed = TRUE;
} else {
$pos = strlen($theText) - 1;
$trimmed = FALSE;
break;
} 答案补充 }
$theText = substr($theText, 0, $pos);
if (strlen($theText) > $lmt) {
$theText = substr($theText, 0, $lmt);
$theText = substr($theText, 0, strrpos($theText," "));
$trimmed = TRUE;
}
if ($trimmed) $theText .= "...";
return $theText;
} 答案补充 http://www.diybl.com/course/6_system/linux/linuxjq/2007211/16882.html
我也没有想过跟你吵的意思.
我能力有限喔..只能给你找资料..
你参考吧.关于LINUX的..我不了解... 答案补充 晕咯..要让我去编译LINUX这个第8个元素..我要三个月.不吃不喝不睡觉..
而且是系统自加的..那我只能说..除非我拿到LINUX开发商的资源.. 答案补充 小弟无能..尽力了..不敢当..以后要好好专心研究下LINUX 答案补充 - -!那个好像是变量吧...

Ⅳ Linux 命令,查看字符是否出现在某字符串中

从文件内容查寻匹配指定字符串的行:

$ grep "被查寻的字符串" 文件名

从文件内容查寻与正则表达式匹配的行:

$ grep –e “正则表达式” 文件名

查寻时不区分大小写:

$ grep –i "被查寻的字符串" 文件名

查寻匹配的行数:

$ grep -c "被查寻的字符串" 文件名

从文件内容查寻不匹配指定字符串的行:

$ grep –v "被查寻的字符串" 文件名

从根目录开始查寻所有扩展名为.log的文本文件,并找出包罗”ERROR”的行

更多请网络一下 linux查找字符串

Ⅳ 在linux中查找字符串用什么命令

Linux查找字符串用grep命令,可以查找文件,也可以在命令的结果中查找。如果是在文件中查找字符串,用法是:
grep 用英文单引号括起来的字符串 文件名
如果是在命令的显示结果中查找,需要用管道符将命令与grep连接起来,像这样:
last | grep 'root'
(在last命令的显示结果中查找字符串root)

Ⅵ linux如何获取两个字符串之间的内容

你可以使用linux cut 选取命令。
方法:
1. 你把上面三行写入一个文件中 vim file
2. 测试cut命令 你的shell输入:cut -d '=' -f 2 file
解释:以=为分隔符,获取第二部分,获取=后面的部分
3. 熟悉cut命令后,你在shell输入
cut -d '=' -f 2 file | cut -d '"' -f 1
解释:第一次执行的输出作为管道命令 | 后面命令的参数。
获取第一个 = 后面的部分,再获取第一个 " 前面的部分。
你可以搜索linux cut命令

Ⅶ linux c语言字符串比较问题

linux中,c语言字符串比较采用strcmp()函数

在linux命令行下,man strcmp,可以看到函数说明:

$manstrcmp
...
NAME
strcmp,strncmp-comparetwostrings
SYNOPSIS
#include<string.h>
intstrcmp(constchar*s1,constchar*s2);
DESCRIPTION
Thestrcmp().Itreturnsanintegerlessthan,equalto,orgreaterthanzeroifs1isfound,respectively,tobelessthan,tomatch,orbegreaterthans2.
strcmp函数比较两个字符串s1和s2.函数返回小于0,等于0,或大于0的整数,分别对应s1<s2,s1=s2,s1<s2.

比如 s1 = "good" s2="...this is good", 从s2取后四位进行两个字符串比较,代码如下:

#include<stdio.h>
#include<string.h>
intmain()
{
char*s1="good",*s2="...thisisgood";
intlen=strlen(s2);
if(len>=4)//如果串长超过4位,则移动指针到最后四位的位置
s2=s2+len-4;
printf("s2=%s ",s2);//输出移位后的字符串内容
printf("compares1,s2=%d ",strcmp(s1,s2));//输出0,表示相同
return0;
}

Ⅷ 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.总结

要注意命令行执行,与脚本文件执行之间的差异性。

Ⅸ Linux字符串截取几种方法

简单介绍下Shell字符串截取的详细方法,如截取指定字数、按指定的字符串截取、按指定要求分割。

一、Linux shell 截取字符变量的前8位,有方法如下:

Ⅹ linux 中c语言字符串的结束符是什么

c语言的字符串是一种标准

不管是在何种操作系统下它的定义都是一样的

而c语言字符串的结束符是数字0


可以通过一个简单的程序来观看

#include<stdio.h>

intmain(intargc,char**argv)
{
chars[]="hello";
inti;

for(i=0;i<sizeof(s);++i)
printf("s[%d]=%d ",i,s[i]);

return0;
}

输出的结果为

s[0] = 104
s[1] = 101
s[2] = 108
s[3] = 108
s[4] = 111
s[5] = 0
可以看出结束符正是数字0

阅读全文

与linux字符串相关的资料

热点内容
android开源集合 浏览:860
华为云服务器登录密码和账号 浏览:154
中世纪java程序员 浏览:786
什么开发引擎使用python 浏览:176
sh脚本运行命令 浏览:316
广联达加密锁怎么看到期 浏览:172
cad轨迹命令 浏览:979
同事刷到女程序员自媒体视频 浏览:571
校验算法的缺点是什么 浏览:717
PHP商品分类功能实现 浏览:330
php取字符串中间 浏览:432
程序员经常用工具 浏览:837
降服主力指标源码主图 浏览:502
python实用库 浏览:694
电脑默认7个文件夹 浏览:13
新唐单片机安装c51后编译错误 浏览:532
红包源码引流神器 浏览:236
学生初中毕业撕书解压 浏览:749
命令方块刷铜点教学 浏览:692
php邮件订阅系统 浏览:999