Chinaunix
标题:
文本中关键信息抽出
[打印本页]
作者:
dotaimba2012
时间:
2015-09-07 21:16
标题:
文本中关键信息抽出
将test.c文件中include部分内容进行处理。
仅需要将""中*.h文件信息抽出。
效果如下,望大神支招。。。。
输入文件test.c:
#include "../abc/a.h" /*a,b,c,d....*/
#include "../abc/b.h" /*....*/
#include "../abc/c.h" /*a,aa,c,d....*/
#include "../abc/abc.h" /*a,b,cc,d....*/
#include "../../de/d.h" /*a,bb,c,d....*/
#include "../../de/e.h" /*a,b,c,dd....*/
/*d,ee,f,gg...*/
/*ff,a,a,a....*/
#include "../../de/f.h"
#include "../../de/g.h"
void test(void)
{
}
void main(void)
{
}
希望输出的result.txt:
a.h
b.h
c.h
abc.h
d.h
e.h
f.h
g.h
作者:
jason680
时间:
2015-09-07 21:39
本帖最后由 jason680 于 2015-09-07 21:42 编辑
回复
1#
dotaimba2012
#include
"
../abc/
a.h
" /*a,b,c,d....*/
...
#include
"
../../de/
g.h
"
$ awk 'match($0,/
#include
"
[^"]+\/
([^\/]+)
"/,a){print
a[1]
}' test.c
a.h
b.h
c.h
abc.h
d.h
e.h
f.h
g.h
作者:
zxy877298415
时间:
2015-09-07 21:55
awk -F\" '/^#/{t=split($2,a,"/");print a[t]}' file
复制代码
回复
1#
dotaimba2012
作者:
dotaimba2012
时间:
2015-09-07 21:58
回复
2#
jason680
学习了,多谢大神!
作者:
Buring__
时间:
2015-09-07 22:32
回复
1#
dotaimba2012
sed -n 's/.*\.\.\/.*\/\([^"]*\)".*/\1/p'
复制代码
作者:
songyc_2015
时间:
2015-09-07 23:29
回复
1#
dotaimba2012
sed -nr '/^#/s#.*/([^/"]+)".*#\1#p' file
复制代码
作者:
dotaimba2012
时间:
2015-09-08 08:23
回复
5#
Buring__
多谢,已采纳!
作者:
dotaimba2012
时间:
2015-09-08 08:24
回复
3#
zxy877298415
多谢,学习了!
作者:
我爱你我的菜
时间:
2015-09-08 08:53
awk -vRS='/|"' '/.h/' test.txt
作者:
我爱你我的菜
时间:
2015-09-08 08:55
回复
3#
zxy877298415
学习了
作者:
moperyblue
时间:
2016-10-09 15:56
grep -oP '.*/\K.*\.h'
复制代码
作者:
sunzhiguolu
时间:
2016-10-09 16:27
perl -0ne 'print "$1\n" while(/^#include.*?(\w+\.h)/mg)' f
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2