资源描述:
《perl参考脚本》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、perl写的一个简单删除文件行号的脚本晚上在网上拷了一段程序,想看看运行结果,分析一下源代码,不想下载所得程序每行前面都有一个行号,程序不能运行,我就试着删除行号,可是程序太长,删的时候太麻烦,于是就写了一个perl脚本将其快速删除,现在将我的脚本贴出来,如有什么地方可以改进希望各位帮忙指出来,我的脚本如下: 1#!/usr/bin/perl 2#文件名:deleteRowNum.pl 3#本脚本用来将源文件中每行的行号号去除,省去了手工删除行号的麻烦; 4#运行格式是: 5
2、# perldeleteRowNum.plsourcefiletargetfile 6#则在targetfile里面的内容就没了行号 7 8open(FILE,"$ARGV[0]")
3、
4、die"Cannotopenfile$ARGV[0]"; 9open(OUTFILE,">>$ARGV[1]")
5、
6、die"cannotcreatefile$ARGV[1]"; 10while($line=){ 11 $line=~s/^(空格{0,}
7、d)d{0,}.//g; 12 printOUTFILE("$line"); 13} 14close(FILE);
8、 15close(OUTFILE)运行实例:有文件mem.c ... 11.#include 12.#include 13.#include 14. 15.MODULE_LICENSE("GPL"); 16.staticintpid; 17.staticunsignedlongva; 18. 19.module_param(pid,int,0644); 20.module_param(va,ulong,0644); print""; 21. 22.staticintfind_pgd_init(
9、void) 23.{ 24. unsignedlongpa=0; 25. structtask_struct*pcb_tmp=NULL; 26. pgd_t*pgd_tmp=NULL; 27. pud_t*pud_tmp=NULL; 28. pmd_t*pmd_tmp=NULL; 29. pte_t*pte_tmp=NULL; 30. 31. printk(KERN_INFO"PAGE_OFFSET=0x%lx",PAGE_OFFSET); 32. printk(KER
10、N_INFO"PGDIR_SHIFT=%d",PGDIR_SHIFT); 33. printk(KERN_INFO"PUD_SHIFT=%d",PUD_SHIFT); 34. printk(KERN_INFO"PMD_SHIFT=%d",PMD_SHIFT); 35. printk(KERN_INFO"PAGE_SHIFT=%d",PAGE_SHIFT); 36. 37. printk(KERN_INFO"PTRS_PER_PGD=%d",PTRS_PER_PGD); 38. printk(KE
11、RN_INFO"PTRS_PER_PUD=%d",PTRS_PER_PUD); 39. printk(KERN_INFO"PTRS_PER_PMD=%d",PTRS_PER_PMD); 40. printk(KERN_INFO"PTRS_PER_PTE=%d",PTRS_PER_PTE); 41. 42. printk(KERN_INFO"PAGE_MASK=0x%lx",PAGE_MASK); 43. 44. if(!(pcb_tmp=find_task_by_pid(pid))){ 45.
12、 printk(KERN_INFO"Can'tfindthetask%d.",pid); 46. return0; 47. } 48. printk(KERN_INFO"pgd=0x%p",pcb_tmp->mm->pgd); 49. /*判断给出的地址va是否合法(va<vm_end)*/ 50. if(!find_