perl 给特定文件加上特定内容

perl 给特定文件加上特定内容

给所有的输入文件,加上特定的内容

本例中,给所有的输入文件内加入## Copyright xxx

如果检测到已经有## Copyright字样的行,那么不添加,具体代码如下。

可以使用该脚本,给所有的verilog文件,加入`default_nettype none,将所有未声明的signal识别为error

perl 复制代码
#!/bin/perl
use strict;
my %do_these; # 声明一个哈希标量;
foreach (@ARGV) {
  $do_these{$_} = 1; #将所有的哈希值都设置为1;
}

while (<>) {
  if (/\A## Copyright/im) { #忽略大小写,多行检查
    delete $do_these{$ARGV}; #检测到特定字符,删除该哈希键值对
    }
}

@ARGV = keys %do_these; # 重新取剩余的哈希键值对,设置为默认数组;

$^I = ".bak"; # 将源文件重命名为xx.bak备份文件,修改后的文件名为原文件;
while( <>) {
  if (/\A#!/) {
    $_ .= "## Copyright (C) 2024 by YOURS AUTHORITY!";
  }
  print; #将修改后的文件写回
}
  
相关推荐
时空系13 小时前
第6篇:数据容器——管理大量数据 Rust中文编程
开发语言·后端·rust
eLIN TECE13 小时前
Go基础之环境搭建
开发语言·后端·golang
念何架构之路13 小时前
Go反射应用技巧
开发语言·后端·golang
shjita13 小时前
java根据键值对中值的大小进行排序的手法。
java·开发语言·servlet
Rabitebla14 小时前
vector 的骨架:三根指针、模板陷阱与迭代器失效的第一现场
开发语言·数据结构·c++·算法
时空系14 小时前
第7篇:功能——打造你的工具箱 Rust中文编程
开发语言·网络·rust
csbysj202014 小时前
CSS !important:深度解析与最佳实践
开发语言
初心未改HD14 小时前
Go语言测试与Benchmark:测试驱动开发的实践指南
开发语言·golang
chxii14 小时前
lua流程控制语句和table(表)数据结构
开发语言·junit·lua
逻辑驱动的ken14 小时前
Java高频面试考点场景题20
java·开发语言·深度学习·面试·职场和发展