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; #将修改后的文件写回
}
  
相关推荐
Ada's2 小时前
【计算机基础系列】003:Python数据结构
开发语言·数据结构·python
2601_962885722 小时前
如何用 Python 计算 TRIX 三重指数平滑均线指标?
开发语言·python
还卿一钵无情泪2 小时前
Unsloth 微调 构建自己的大模型 没有GPU也能微调
linux·开发语言·人工智能·python·大模型·nlp·unsloth
倔强的石头1064 小时前
应用账号最小权限实践:读写账号、报表账号、运维账号分层
java·运维·开发语言
传人once4 小时前
页面中心圆圈放大效果如何写
开发语言·javascript·ecmascript
NeilYuen4 小时前
【C++】STL源码仿写(二):vector
开发语言·c++
蜗牛互联网5 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
weixin_307779135 小时前
C++代码实现MATLAB中的crossval函数功能
开发语言·c++·算法·matlab
ttwuai5 小时前
Go后台管理系统开源项目:4个官方仓库怎么追溯和核验
开发语言·golang·开源
谢亮_vipxieliang5 小时前
Go Worker Pool 设计——从原理到生产级实现
开发语言·后端·golang