加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

用perl 从一个文件生成另一个文件(小case)

发布时间:2020-12-16 00:09:48 所属栏目:大数据 来源:网络整理
导读:有一个文件叫sections,?如下: hjj@ubuntu:~$?cat?sections? 0xe08d4000? 0xe08d642c 由sections?文件,欲生成debug-sections?文件,期待如下: hjj@ubuntu:~$?cat?debug-sections? add-symbol-file?uxfs.ko?0xe08d4000?-s?.exit.text?0xe08d642c 就是说从第
有一个文件叫sections,?如下:
hjj@ubuntu:~$?cat?sections?
0xe08d4000?
0xe08d642c

由sections?文件,欲生成debug-sections?文件,期待如下:
hjj@ubuntu:~$?cat?debug-sections?
add-symbol-file?uxfs.ko?0xe08d4000?-s?.exit.text?0xe08d642c

就是说从第一个文件中读取第一行,第二行内容,

添加其它一些信息,合成到一个新文件中。


用perl 解决该问题如下:


hjj@ubuntu:~$ cat merge.pl 
#!/usr/bin/perl -w
die "Usage $0 <file>" if @ARGV < 1;

open (FDR,"<",$ARGV[0]) || die $!;
while(<FDR>)
{
	chomp $_;
	push @lines,$_;
}
$result = "add-symbol-file uxfs.ko ". $lines[0] . "-s .exit.text " . $lines[1]."n";
print $result;

运行结果:
hjj@ubuntu:~$ ./merge.pl sections 
add-symbol-file uxfs.ko 0xe08b9000-s .exit.text 0xe08bb42c


用SED 解决更加简单, 我从csdn 上求来的!

echo?"add-symbol-file?uxfs.ko?`sed?-n?'1?p'?sections`??-s?.exit.text?`sed?-n?'2?p'?sections`"?>?debug-sections?


sed 还是复杂了一些,不实用。 用awk 才具有实用价值

$ cat sections |awk '{a[NR]=$0} END{print "add-symbol-file uxfs.ko "a[1]," -s .exit.text "a[2],"n"}'

结果:
add-symbol-file uxfs.ko 0xe08d4000?? -s .exit.text 0xe08d642c

数据导入及打印输出一气呵成。思路清楚!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读