草庐IT

strawberry-perl

全部标签

regex - 根据文件名使用 bash 和 Perl 批量重命名文件

我只想批量重命名当前目录中的文件,并从文件名末尾删除某些字符串。示例:foo-bar-(ab-4529111094).txtfoo-bar-foo-bar-(ab-189534).txtfoo-bar-foo-bar-bar-(ab-24937932201).txt输出应该是这样的:foo-bar.txtfoo-bar-foo-bar.txtfoo-bar-foo-bar-bar.txt我想删除每个文件名末尾的字符串-(ab-2492201)知道数字的长度可以变化。Perl正则表达式优于模块且不使用任何实用程序,对于bashoneliner命令是高度首选。如何在Linux上的Perl和

linux - Perl/curl 如何获取状态码和响应体

我正在尝试编写一个简单的perl脚本来调用API,如果状态代码为2xx,则对响应执行某些操作。如果是4xx或5xx,则执行其他操作。我遇到的问题是我能够获得响应代码(使用自定义写出格式化程序并将输出传递到其他地方)或者我可以获得整个响应和header。my$curlResponseCode=`curl-s-o/dev/null-w"%{http_code}"....`;只会给我状态码。my$curlResponse=`curl-si...`;将给我整个header和响应。我的问题是如何以一种简洁的格式从服务器获取响应正文和http状态代码,以便将它们分成两个单独的变量。不幸的是,我不能

linux - Perl/curl 如何获取状态码和响应体

我正在尝试编写一个简单的perl脚本来调用API,如果状态代码为2xx,则对响应执行某些操作。如果是4xx或5xx,则执行其他操作。我遇到的问题是我能够获得响应代码(使用自定义写出格式化程序并将输出传递到其他地方)或者我可以获得整个响应和header。my$curlResponseCode=`curl-s-o/dev/null-w"%{http_code}"....`;只会给我状态码。my$curlResponse=`curl-si...`;将给我整个header和响应。我的问题是如何以一种简洁的格式从服务器获取响应正文和http状态代码,以便将它们分成两个单独的变量。不幸的是,我不能

linux - $ 中不正确的命令行 perl 错误值?

我正在使用命令行perl在文件中执行就地替换。这是代码:(注意rootpermwithsudo)sudoperl-i-pe"s/foo/bar/"config.txt如果成功,'echo$?'返回0。现在我使用chattr使文件不可写,即使对于root用户也是如此:sudochattr+iconfig.txt我运行相同的perl命令但失败并出现此错误:Can'tremoveconfig.txt:Operationnotpermitted,skippingfile.这很好。然而,'echo$?'在这种情况下仍然返回0。为什么会这样?它不应该返回一个非零值来指示错误吗?

linux - $ 中不正确的命令行 perl 错误值?

我正在使用命令行perl在文件中执行就地替换。这是代码:(注意rootpermwithsudo)sudoperl-i-pe"s/foo/bar/"config.txt如果成功,'echo$?'返回0。现在我使用chattr使文件不可写,即使对于root用户也是如此:sudochattr+iconfig.txt我运行相同的perl命令但失败并出现此错误:Can'tremoveconfig.txt:Operationnotpermitted,skippingfile.这很好。然而,'echo$?'在这种情况下仍然返回0。为什么会这样?它不应该返回一个非零值来指示错误吗?

linux - 获取错误 install_driver(Oracle) 失败 : Can't load '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so'

尝试连接数据库时出现以下错误install_driver(Oracle)failed:Can'tload'/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so'formoduleDBD::Oracle:libclntsh.so.11.1:cannotopensharedobjectfile:Nosuchfileordirectoryat/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pmline230

linux - 获取错误 install_driver(Oracle) 失败 : Can't load '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so'

尝试连接数据库时出现以下错误install_driver(Oracle)failed:Can'tload'/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so'formoduleDBD::Oracle:libclntsh.so.11.1:cannotopensharedobjectfile:Nosuchfileordirectoryat/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pmline230

linux - Perl:递归重命名所有文件和目录

我需要递归地重命名每个文件和目录。我将空格转换为下划线并将所有文件/目录名称转换为小写。如何使以下脚本在一次运行中重命名所有文件?目前,在转换所有文件/目录之前,脚本需要运行几次。代码如下:#!/usr/bin/perluseFile::Find;$input_file_dir=$ARGV[0];subprocess_file{$clean_name=lc($_);$clean_name=~s/\s/_/g;rename($_,$clean_name);print"file/dirname:$clean_name\n";}find(\&process_file,$input_file_

linux - Perl:递归重命名所有文件和目录

我需要递归地重命名每个文件和目录。我将空格转换为下划线并将所有文件/目录名称转换为小写。如何使以下脚本在一次运行中重命名所有文件?目前,在转换所有文件/目录之前,脚本需要运行几次。代码如下:#!/usr/bin/perluseFile::Find;$input_file_dir=$ARGV[0];subprocess_file{$clean_name=lc($_);$clean_name=~s/\s/_/g;rename($_,$clean_name);print"file/dirname:$clean_name\n";}find(\&process_file,$input_file_

linux - LongReadLen 的 Perl DBI 替代品

我想知道使用PerlDBI从Oracle数据库中提取任意大数据字段的最节省内存的方法。我知道要使用的方法是将数据库句柄上的“LongReadLen”属性设置为足够大的值。但是,我的应用程序需要提取几千条记录,因此任意执行此操作的内存效率极低。doc建议预先进行查询以找到最大的潜在值,然后进行设置。$dbh->{LongReadLen}=$dbh->selectrow_array(qq{SELECTMAX(OCTET_LENGTH(long_column_name))FROMtableWHERE...});$sth=$dbh->prepare(qq{SELECTlong_column_n