用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"}' 结果: 数据导入及打印输出一气呵成。思路清楚! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |