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

前端之家收集整理的这篇文章主要介绍了用perl 从一个文件生成另一个文件(小case)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有一个文件叫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

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

猜你在找的Perl相关文章