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; #将修改后的文件写回
}
  
相关推荐
似水明俊德4 小时前
02-C#.Net-反射-面试题
开发语言·面试·职场和发展·c#·.net
Thera7775 小时前
C++ 高性能时间轮定时器:从单例设计到 Linux timerfd 深度优化
linux·开发语言·c++
炘爚5 小时前
C语言(文件操作)
c语言·开发语言
阿蒙Amon5 小时前
C#常用类库-详解SerialPort
开发语言·c#
凸头6 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言
wuqingshun3141596 小时前
线程安全需要保证几个基本特征
java·开发语言·jvm
Moksha2626 小时前
5G、VoNR基本概念
开发语言·5g·php
jzlhll1236 小时前
kotlin Flow first() last()总结
开发语言·前端·kotlin
W.D.小糊涂6 小时前
gpu服务器安装windows+ubuntu24.04双系统
c语言·开发语言·数据库
用头发抵命7 小时前
Vue 3 中优雅地集成 Video.js 播放器:从组件封装到功能定制
开发语言·javascript·ecmascript