Questions tagged «perl»

Perl是一种高级通用,解释性动态编程语言。它最初是由拉里·沃尔(Larry Wall)开发的,是一种通用的Unix脚本语言,旨在简化报表的处理。在开放源代码社区的支持下,经过一段时间,它已经发展并成熟,可用于图形编程,系统管理,网络编程,财务。 ,生物信息学和其他工程应用。

3
用顺序索引替换字符串
有人可以建议一种优雅的方式来实现这一目标吗? 输入: test instant () test instant () ... test instant () //total 1000 lines 输出应为: test instant1 () test instant2 () test instant1000() 空行在我的输入文件中,并且同一目录下有很多文件需要立即处理。 我试图用它替换同一个目录中的许多文件,但没有用。 for file in ./*; do perl -i -000pe 's/instance$& . ++$n/ge' "$file"; done 错误: Substitution replacement not terminated at -e line 1. Substitution replacement …

1
在Linux上将CSV转换为XLS文件
以下Perl脚本可以将CSV文件转换为XLS文件 问题是我需要在客户Linux机器上安装许多Perl模块 为了运行此Perl脚本,实际上我不能,因为Linux机器是客户机器(不允许安装模块) 所以我需要为这个Perl脚本找到其他选择 第一位客户拥有Linux红帽机器版本5.X 而且我想找到一些bash / ksh / sh / awk脚本,它们可以完成与perl脚本相同的工作 所以我想找到其他将CSV转换为XLS文件的替代方法 请咨询如何找到该脚本?或其他建议在Linux计算机上将CSV转换为XLS #!/usr/bin/perl -w ############################################################################### # # Example of how to use the WriteExcel module # # Simple program to convert a CSV comma-separated value file to an Excel file. # This is more or less an non-op …
10 linux  bash  shell-script  awk  perl 

3
如何用sed替换多行代码?
我有一个很大的文件,里面有特殊字符。那里有一个多行代码,我想替换为sed。 这个: text = "\ ------ ------\n\n\ This message was automatically generated by email software\n\ The delivery of your message has not been affected.\n\n\ ------ ------\n\n" 需要变成这样: text = "" 我尝试了以下代码,但没有运气: sed -i '/ text = "*/ {N; s/ text = .*affected.\./ text = ""/g}' /etc/exim.conf 它不会替换任何东西,也不显示任何错误消息 我一直在玩它,但是我尝试的所有方法都不起作用。

2
回声测试 stty -echo-> stty:标准输入:设备的不适当的ioctl
我在玩一个perl脚本,该脚本需要用户输入以下内容: system( qw( stty -echo ) ); $? == 0 or die "Error unable to disable character printing.\n"; print "$prompt: "; my $input = <STDIN>; 我以为我可以使用echo响应,但是似乎与stty -echo命令冲突并产生以下错误: stty: standard input: Inappropriate ioctl for device 在不更改perl脚本的情况下,可以在bash中完成传递输入的操作吗?是什么原因引起的问题?
9 bash  perl  stty 

2
从文本文件中删除未知的Unicode字符-sed,其他bash / shell方法
我需要在具有相同名称的某些文件中搜索并替换所有出现的未知字符。 用vi打开此类文件,我读取了该字符的<91>代码。用nano打开它们,我在钻石(黑色隆隆声)中看到一个“问号”。 我想用引号(')代替这样的未知字符。我正在尝试许多运气不佳的方法。 我试过了: find ./ -name filename.txt -exec perl -i~ -pe "s/\x91/'/" {} \; find ./ -name filename.txt -exec sed -i "s/\x91/'/g" {} \; 编辑 有关该字符的更多信息: Hexadecimal: 91 68 74 74 Decimal: 145 104 116 116 Octal: 221 150 164 164 Binary: 10010001 01101000 01110100 01110100 LC_ALL=C sed -n …

8
在/usr/share/perl5/IO/Socket/SSL.pm第332行指定的SSL_version无效
由于我将PC从(k)ubuntu 12.04升级到12.10,因此在尝试使用发送电子邮件时会收到此错误消息sendemail。 不能安装IO :: Socket :: SSL的旧版本。我有一种印象,那就是一切正常,消息只是一个警告。 我如何摆脱此消息? SSL.pm 我认为以下与问题有关(/usr/share/perl5/IO/Socket/SSL.pm)。 34 use constant DEFAULT_VERSION => 'SSLv23:!SSLv2'; ... 251 my %default_args = ( 252 Proto => 'tcp', 253 SSL_server => $is_server, 254 SSL_use_cert => $is_server, 255 SSL_check_crl => 0, 256 SSL_version => DEFAULT_VERSION, 257 SSL_verify_mode => SSL_VERIFY_NONE, 258 SSL_verify_callback => undef, …
9 perl  ssl  ubuntu 


1
在sed或awk中替换多行[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 5年前关闭。 我正在尝试使用sed或awk替换smb文件中的5行,但是我只是不知道如何处理换行符。
9 sed  awk  scripting  perl 

3
如何从文件末尾删除最后一个逗号分隔符?
如何在Linux上的文件中删除最后一个逗号分隔符? 文件示例: "is_supported_kafka_ranger" : "true", "kafka_log_dir" : "/var/log/kafka", "kafka_pid_dir" : "/var/run/kafka", "kafka_user" : "kafka", "kafka_user_nofile_limit" : "128000", "kafka_user_nproc_limit" : "65536", 预期成绩: "is_supported_kafka_ranger" : "true", "kafka_log_dir" : "/var/log/kafka", "kafka_pid_dir" : "/var/run/kafka", "kafka_user" : "kafka", "kafka_user_nofile_limit" : "128000", "kafka_user_nproc_limit" : "65536"

2
在“ sed”内执行命令
我有一个保存在文本文件中的随机内存地址列表,我需要将sed它们删除,解码并将它们保存回我的文件中。但是,我尝试执行的解码操作是在一段时间前创建的C ++程序中处理的。我现在遇到的问题是在sed命令中执行C ++ 。也就是说,我想向后引用需要解码的部分,并将其用作我的C ++程序中的参数。我写了以下命令: cat $1 | sed -r 's/(0[Xx])([0-9A-Za-z]{1,8})/\1`./convAddrs \2`/g'; 在我有机会阅读这篇文章的答案之前,我说这sed不执行命令。是真的sed不允许执行命令吗?如果是这样,假设我编写的命令是一个有效的sed序列,我将如何编写它perl?

5
删除每一列中包含NA的行
我有一个制表符分隔的文件,如下所示: gene v1 v2 v3 v4 g1 NA NA NA NA g2 NA NA 2 3 g3 NA NA NA NA g4 1 2 3 2 每行中的字段数是固定的,并且相同。我想从上述文件中删除那些行,其中从第2列到最后一列的每一行的所有字段均为NA。然后输出应如下所示: gene v1 v2 v3 v4 g2 NA NA 2 3 g4 1 2 3 2


2
尝试在Perl重命名工具(Debian)中进行算术运算
假设我有五个mp3文件: 01-trackfoo.mp3 02-trackbar.mp3 03-trackbaz.mp3 04-trackabc.mp3 05-trackxyz.mp3 现在,我快速聆听文件(只需在控制台上的mplayer就能解决问题),然后发现音轨顺序错误。05实际上是02,其余的将不得不重命名。所以首先我将进行临时重命名: 01-trackfoo.mp3 02-trackbar.mp3 03-trackbaz.mp3 04-trackabc.mp3 00-trackxyz.mp3 现在我们需要一个“移位”:02应该变成03,03应该变成04,04应该变成05。为了最大程度地减少混乱,将mv稍后编辑ex-05(现在为00)。 我的方法是这样的:(perl rename,由Larry Wall提供,默认为Debian) rename 's/0([2-4])([\s\S]+)/0($1+1)$2/' * 以及(之后再进行一些RTFM操作) rename 's/0([2-4])([\s\S]+)/0($1+1)$2/e' * 它们都/e[val]不起作用,特别是因为修饰符除了求值以外不接受其他任何东西,并且一旦您尝试将求值与字符串结合起来就会抛出错误。该bash能做到这一点就好了,例如, foo$((1+6))将被评估到foo7。 那么,我该怎么做(首选单行代码,不打算为此编写整个独立脚本)?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.