admin 管理员组文章数量: 1086019
2024年3月9日发(作者:宣萱kill this love)
perl写的一个简单删除文件行号的脚本晚上在网上拷了一段程序,想看看运行结果,分析一下源代码,不想下载所得程序每行前面都有一个行号,程序不能运行,我就试着删除行号,可是程序太长,删的时候太麻烦,于是就写了一个perl脚本将其快速删除,现在将我的脚本贴出来,如有什么地方可以改进希望各位帮忙指出来,我的脚本如下:1#!/usr/bin/perl2#文件名:3#本脚本用来将源文件中每行的行号号去除,省去了手工删除行号的麻烦;4#运行格式是:5#78open(FILE,"$ARGV[0]")||die"Cannotopenfile$ARGV[0]";9open(OUTFILE,">>$ARGV[1]")||die"cannotcreatefile$ARGV[1]";10while($line=
_param(va,ulong,0644);print"n";intfind_pgd_init(void)23.{24.25.26.27.28.29.30.31.0x%lxn",PAGE_OFFSET);32.=%dn",PGDIR_SHIFT);33.34.35.36.37.=%dn",PTRS_PER_PGD);38.=%dn",PTRS_PER_PUD);39.=%dn",PTRS_PER_PMD);40.=%dn",PTRS_PER_PTE);41.42.0x%lxn",PAGE_MASK);%d.n",pid);if(!(pcb_tmp=find_task_by_pid(pid))){printk(KERN_INFO"Can'tfindtheprintk(KERN_INFO"PAGE_MASK=printk(KERN_INFO"PTRS_PER_PTEprintk(KERN_INFO"PTRS_PER_PMDprintk(KERN_INFO"PTRS_PER_PUDprintk(KERN_INFO"PTRS_PER_PGDprintk(KERN_INFO"PUD_SHIFT=%dn",PUD_SHIFT);printk(KERN_INFO"PMD_SHIFT=%dn",PMD_SHIFT);printk(KERN_INFO"PAGE_SHIFT=%dn",PAGE_SHIFT);printk(KERN_INFO"PGDIR_SHIFTprintk(KERN_INFO"PAGE_OFFSET=unsignedlongpa=0;structtask_struct*pcb_tmp=NULL;pgd_t*pgd_tmp=NULL;pud_t*pud_tmp=NULL;pmd_t*pmd_tmp=NULL;pte_t*pte_tmp=NULL;
46.47.48.49.(va<vm_end)*/50.51.0x%lxnotavailable.n",va);.n");.n");66.67.68.69.70.71.72.}}}}return0;printk(KERN_INFO"pgd=/*判断给出的地址va是否合法if(!find_vma(pcb_tmp->mm,va)){printk(KERN_INFO"virt_addrreturn0;pgd_tmp=pgd_offset(pcb_tmp->mm,va);printk(KERN_INFO"pgd_tmp=0x%pn",pgd_tmp);printk(KERN_INFO"pgd_val(*pgd_tmp)=if(pgd_none(*pgd_tmp)){printk(KERN_INFO"Notmappedinreturn0;pud_tmp=pud_offset(pgd_tmp,va);printk(KERN_INFO"pud_tmp=0x%pn",pud_tmp);printk(KERN_INFO"pud_val(*pud_tmp)=if(pud_none(*pud_tmp)){printk(KERN_INFO"Notmappedinreturn0;pmd_tmp=pmd_offset(pud_tmp,va);printk(KERN_INFO"pmd_tmp=0x%pn",pmd_tmp);printk(KERN_INFO"pmd_val(*pmd_tmp)=if(pmd_none(*pmd_tmp)){printk(KERN_INFO"Notmappedin0x%pn",pcb_tmp->mm->pgd);0x%lxn",pgd_val(*pgd_tmp));0x%lxn",pud_val(*pud_tmp));0x%lxn",pmd_val(*pmd_tmp));
pmd.n");_offset_kernel*/.n");.n");86.87.88.&~PAGE_MASK);89.0x%lx.n",va,pa);_OFFSET));92.93.94.95.}....运行脚本如下:return0;printk(KERN_INFO"contectin0x%lxis0x%lxn",pa,*(unsignedlong*)((char*)pa+printk(KERN_INFO"virt_addr0x%lxinRAMis}pa=(pte_val(*pte_tmp)&PAGE_MASK)|(vareturn0;}if(!pte_present(*pte_tmp)){printk(KERN_INFO"ptenotinreturn0;printk(KERN_INFO"pte_tmp=0x%pn",pte_tmp);printk(KERN_INFO"pte_val(*pte_tmp)=if(pte_none(*pte_tmp)){printk(KERN_INFO"Notmappedinpte_tmp=pte_offset_kernel(pmd_tmp,va);}/*在这里,把原来的pte_offset_map()改成了return0;0x%lxn",pte_val(*pte_tmp));
caojiangfeng@ceagle-laptop:~$1.c则在mem1.c中的文件没有行号了
版权声明:本文标题:PERL参考脚本 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1709970519a551681.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论