shell 脚本 代码处理

sh/bash/dash/ksh/zsh等Shell脚本
回复
mink365
帖子: 265
注册时间: 2008-01-29 23:15
送出感谢: 0
接收感谢: 0

shell 脚本 代码处理

#1

帖子 mink365 » 2009-04-01 21:05

例如:
#include<stdio.h>
#include<stdlib.h>
#include<openssl/md5.h>
int main(int argc, char* argv[])
{
char *buf = "helloworld";
char *md;
int i;
md = MD5(buf,strlen(buf),NULL);
printf("%s\n",md);
for (i = 0; i < strlen(md); i++)
printf("%x", md[i]);
printf("\n");
return 0;
}


如何作才能取出stdlib.h,openssl/md5.h?awt无法做吧?

我找到了一个方法:awk -F'[][]' '{sum+=$6}END{print "total of tm is",sum}'可以处理方括号,但不能处理尖括号 ,即使直接在脚本和要处理的文件中直接替换方括号也不行!!:em20 :em20
mink365
帖子: 265
注册时间: 2008-01-29 23:15
送出感谢: 0
接收感谢: 0

Re: shell 脚本 代码处理

#2

帖子 mink365 » 2009-04-01 21:41

代码: 全选

cat filename |grep '#'| sed 's/#include<//g' | sed 's/>//g'


自己发一个
mink365
帖子: 265
注册时间: 2008-01-29 23:15
送出感谢: 0
接收感谢: 0

Re: shell 脚本 代码处理

#3

帖子 mink365 » 2009-04-01 21:53

结果:

代码: 全选

stdio.h
stdlib.h
openssl/md5.h


那麽,如何把stdio.h等赋值给一个变量a哪?以便cp a .?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: shell 脚本 代码处理

#4

帖子 eexpress » 2009-04-02 9:10

grep -o '<[^>]*>'
大概这样吧。
● 鸣学
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51
送出感谢: 0
接收感谢: 0

Re: shell 脚本 代码处理

#5

帖子 c\nc » 2009-04-02 9:57

awk 当然能了:

awk -F '[<>]' '/^#include/{print $2}' FILE
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30
送出感谢: 2 次
接收感谢: 31 次

Re: shell 脚本 代码处理

#6

帖子 aerofox » 2009-04-02 12:20

代码: 全选

sed -n '/#include/ {s/.*<//;s/>//;p}'
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

Re: shell 脚本 代码处理

#7

帖子 bones7456 » 2009-04-03 12:11

不知道你在说什么,唉...
关注我的blog: ε==3
回复

回到 “Shell脚本”