perl读取目录,写入文件

perl读取目录,写入文件

此脚本有两个输入参数,第一个参数为需要打印的文件目录,第二个参数为打印后的文件名;

该脚本名称为out_file_full_path

perl 复制代码
#!/bin/perl

use 5.010;
my $dir = $ARGV[0]; # 此为第一个参数;
opendir my $dh, $dir or die "Cannot open $dir: $!";

my $out_file = $ARGV[1]; # 此为第二个参数;
open OUT,">", $out_file or die "Cannot open $out_file:$!";

foreach $file (readdir $dh) {
  next if $file eq '.' or $file eq '..'; # 将当前目录.和上层目录..排除在打印列表之外
  my $full_dir = "$dir/$file"; #加上目录路径,若不需打印目录,则注释改行,修改下一行的$full_dir为$file即可
  print OUT $full_dir . "\n"; #将文件和目录写入OUT文件中,每行添加一个"\n",用于换行
  print "One file in $dir is $file\n"; #此行为debug 调试打印,可注释
}

closedir $dh; # 关闭打开文件夹的句柄
close OUT; #关闭打开文件的句柄

举例说明

perl 复制代码
# 现在在一个名为test的文件夹,test里面有3个文件,分别为test1.v,test2.v,test3.v
# 在终端中输入上述命令
[xxx@local]$ ./out_file_full_path test test.out

# 返回结果有两个,第一个即为打印在终端的:
One file in test is test1.v
One file in test is test2.v
One file in test is test3.v
# 第二个为,输出的文件,名称为test.out
# 在终端中使用cat命令获取文件内容
cat test.out
# 返回值为
$PATH/test/test1.v
$PATH/test/test2.v
$PATH/test/test3.v
# 其中$PATH为test所在路径
相关推荐
wifi___9 小时前
全局异常处理的原理
java·开发语言
平常心的技术小牛12 小时前
Qt-快速上手-QMenuBar
开发语言·qt
青 春 记 忆12 小时前
零基础入门Python11|Git实战:为任务管理器建立版本历史
开发语言·git·vscode·python·python3.11
余额瞒着我当琳14 小时前
C++--深拷贝三件套 + swap + 写时拷贝 + vector 扩容 + reserve
java·开发语言·c++
坐吃山猪15 小时前
WebClient内存配置解析
开发语言·springboot·webflux
jdksjw15 小时前
同步与异步、阻塞与非阻塞、多线程、协程超详细讲解(Python并发编程从入门到精通)
开发语言·python
Zach_菠萝侠15 小时前
【DeepSeek Harness 研究】进化方向4:安全加固 思考、设计与实现
开发语言·安全·deepseek
SL-staff16 小时前
技术实践:HR如何用JVS-Logic可视化编排实现考勤数据同步(含节点配置与异常处理)
开发语言·python·低代码·钉钉·可视化编排·jvs-logic·hr技术
SomeB1oody16 小时前
【RustyML入门】6.0. 数学工具
开发语言·后端·机器学习·rust·教程
进制树17 小时前
【飞控开发实战·⑲】ROS2无人机开发环境搭建:Jazzy安装、工作空间与hello_drone节点实战
开发语言·安全·无人机·课程设计