成都创新互联网站制作重庆分公司

linux拼接字符串命令 linux中拼接字符串

linux下的ls实现问题,下面这段while内代码每一句有什么功能?急!b-name什么表示?

int ls_prepare(char *w,int aflag,int lflag)   //从后面看w是路径

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的新吴网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

{            //块语句

struct stat buf        //结构体; 保存文件信息,在头文件sys/stat.h

char name[100];        //数组

DIR *dir;                    //目录结构体; 没有必要去研究; 知道哪些函数用他即可

struct dirent *pdr;     //目录信向息结构体, 里面保存文件信息,包括inode,文件名,偏移量...

目测这里应该少了代码;因为buf没有初始化;

if(S_ISDIR(buf.st_mode))        //判断是否为一个目录

{  

dir = opendir(w);                    //打开路径w;

while ((pdr = readdir(dir))!=NULL)         //然后读取目录

{

if(pdr-d_name[0]=='.')                    //如果目录是'.'和隐藏文件(linux隐藏文件'.'打头)

continue;                                        //那么跳过

memset(name,0,100);                    情况name字符串

strcpy(name,w);                                把路径复制到字符串中

strcat(name,"/");                                字符串拼接

strcat(name,pdr-d_name);            字符串拼接

do_ls(name,pdr-d_name,lflag);        //这个应该就是自己定义ls的名字吧;

}

closedir(dir);                //关闭目录

}

%s\n 这句话是什么意思?'>grep \"%s\" %s | awk '{print $5}' > %s\n 这句话是什么意思?

·1、这应该是一个在宿主语言中(比如:c语言)待拼接成一个完整的linux/Unix命令串的字符串,待拼接完成后,再利用system("")调用这个命令;

以c语言为例,拼接如下:

sprintf(cmd,"grep \"%s\" %s | awk '{print $5}' %s\n",str_a,str_b,str_c);

这个命令的转换成linux直观的命令为:grep "字符串_1" 字符串_2 | awk '{print $5}' 字符串_3

其中:

"字符串_1"为grep过滤的模式;

"字符串_2"为grep筛选的对象文件名;

"字符串_3"为筛选结果输出的文件名;

即,从文件名为"字符串_2"中筛选满足条件 "字符串_1" 的行,并按照空格作为行分隔符,然后提取第5列,写入(不重复)文件名为"字符串_3"的文件中.

·2、因此,这个 grep \"%s\" %s | awk '{print $5}' %s\n 命令串片段的作用为:

从文件名为"第二个%s"的文件中,筛选满足grep条件"第1个%s"的行,并将该行中以空格分隔的第5列写入文件名为"第3个%s"的文件中. (PS:""的作用不用解释吧)

3、最后,希望下次楼主问的问题不要这么含蓄,乍一看还真不知道是啥.

linux shell 字符串拼接方法

CROSS_COMPILE=arm-openwrt-linux-muslgnueabi-

echo $CROSS_COMPILE

方法1:

test1=$(echo $CROSS_COMPILE)gcc

echo $test1

方法2:

test2=${CROSS_COMPILE}gccabc

echo $test2


新闻名称:linux拼接字符串命令 linux中拼接字符串
当前URL:http://cxhlcq.com/article/dohscge.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部