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; #将修改后的文件写回
}
  
相关推荐
diediedei几秒前
嵌入式数据库C++集成
开发语言·c++·算法
xie0510_3 分钟前
string模拟实现
开发语言·c++·算法
FAFU_kyp8 分钟前
RISC0_ZERO项目在macOs上生成链上证明避坑
开发语言·后端·学习·macos·rust
萧曵 丶25 分钟前
JavaScript 函数各种写法和场景
开发语言·javascript·ecmascript
雪域迷影27 分钟前
C++17中使用inline修饰类的静态成员变量
开发语言·c++·inline static·类静态成员变量
星火开发设计27 分钟前
共用体 union:节省内存的特殊数据类型
java·开发语言·数据库·c++·算法·内存
仰望星空_Star1 小时前
Java证书操作
java·开发语言
女王大人万岁1 小时前
Go语言time库核心用法与实战避坑
服务器·开发语言·后端·golang
云游云记1 小时前
php Token 主流实现方案详解
开发语言·php·token
m0_748229991 小时前
Laravel5.x核心特性全解析
开发语言·php