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; #将修改后的文件写回
}
  
相关推荐
靓仔建24 分钟前
Vue3导入组件出错does not provide an export named ‘user_setting‘ (at index.vue:180:10)
开发语言·前端·typescript
赶路人儿1 小时前
UTC时间和时间戳介绍
java·开发语言
6+h1 小时前
【java】基本数据类型与包装类:拆箱装箱机制
java·开发语言·python
未来之窗软件服务3 小时前
幽冥大陆(一百12)js打造json硬件管道——东方仙盟筑基期
开发语言·javascript·算法·json·仙盟创梦ide·东方仙盟·东方仙盟算法
人道领域3 小时前
苍穹外卖:菜品分页查询与删除功能(保姆级详解)
java·开发语言·数据库·后端·spring
EverestVIP3 小时前
c++前置声明的方式与说明
开发语言·c++
天远云服4 小时前
天远企业司法认证API对接实战:PHP构建B2B供应链合规防火墙
大数据·开发语言·后端·node.js·php
空空kkk4 小时前
Java基础——代理
java·开发语言
赵谨言4 小时前
基于YOLOv5的植物目标检测研究
大数据·开发语言·经验分享·python
野生技术架构师4 小时前
互联网大厂必备 Java 面试八股文真题解析
java·开发语言·面试