Tag: perl

如何通过增加其数字部分来查找和替换特定字符串?

我的输入文件是, ami41 ami56 ami23 ami67 ami45 ami34 ami88 jama66 tumi234 bichi23455 susami345 使用单个命令行我需要输出为, ami42 ami57 ami24 ami68 ami46 ami35 ami89 jama66 tumi234 bichi23455 susami345 我用了命令, perl -pe ‘s/(\d+)/$1+1/eg’ inputfile 但我把输出文件作为, ami42 ami57 ami24 ami68 ami46 ami35 ami89 jama67 tumi235 bichi23456 susami346 即所有类型字符串的所有数字都会增加。 但我只需要增加ami字符串的数字。 任何人都可以建议我一些更好的命令行。

在bash中解析出来

我的文件看起来像这样 // [297]((((21:0.125204,20:0.125204):0.00994299,(28:0.0790047,(7:0.0146105,5:0.0146105):0.0643943):0.0561423):0 segsites: positions: 1 2 4 6 9 10 45 67 78 89 01010101010101010101010101011111010101 我需要将其解析为三个不同的文件 // [297]((((21:0.125204,20:0.125204):0.00994299,(28:0.0790047,(7:0.0146105,5:0.0146105):0.0643943):0.0561423):0 然后 segsites: positions: 1 2 4 6 9 10 45 67 78 89 一个 01010101010101010101010101011111010101 问题是没有固定数量的行以括号开头等等。 最后一行可以从0或1开始,这是一个问题,因为我不知道如何告诉grep搜索0或1.我需要grep为[]。 那么segsites和下面的行包括pos,然后是01的数字行

在多个文件中查找并替换正则表达式(匹配unicode字符类Devanagari)

假设您有一个名为test.txt的文件,其中包含以下行: ಕದಂಬ कदम्ब 然后,假设您想用D替换每个devanagarI unicode字符(即在कदम्ब中)。然后,您可能认为以下内容可行: find . -name ‘test.*’ | xargs perl -w -i -p -e ‘s/(\p{Devanagari})/D/g’ 但事实并非如此。 怎么做到这一点?

在csv文件中搜索模式

我有file.csv看起来像这样 4,6,18,23,26 5,12,19,29,31 2,5,13,16,30 9,10,24,27,32 4,5,10,19,22 4,6,8,10,25 2,3,4,25,11 我想找到一些模式,并将它们保存在另一个日志文件file.log ,并从第一个文件中删除它们。 理想的Perl或grep 例如,如果x + 1 = x2,在3的范围内,则删除该行并将其存在于另一个文件中以及它存在的位置。 那么2,4,5,25,11将从file.csv和2,4,5,25,11中删除我会发现像row 7: 2,3,4,25,11 was removed from file.csv 。 我正在努力寻找序列

在perl脚本中使用awk命令

有人可以建议如何在perl脚本中使用命令管道吗? 特别是涉及调用awk命令? 我正在尝试创建一个perl脚本,它将使用df -H读取磁盘使用情况并返回第二行输出,显示%use。 直接在终端中输入命令将返回所需的输出。 df -H | awk ‘{print $(NF-3)}’ 此命令返回正确的结果。 但是当在反向刻度实用程序中使用相同的命令时,perl脚本会抛出很多错误。 $thirdlast=`df -H | awk ‘{print $(NF-3)}’`; print $thirdlast; 为什么脚本中没有运行相同的命令? 有没有其他方法可以返回所需的结果?

为什么Perl默认不使用最新版本?

当我尝试使用新的perlfunction(如“说”而不是“打印”)时,代码会失败,直到我输入“use 5.014”行。 然后一切都运行了。 我安装的perl版本是5.14.2,它看起来像我安装的唯一二进制文件,为什么默认情况下不使用新function? 谢谢!

重命名留下尾随字符

对于那些知道正确逃生方式的人来说,这个应该是简单的。 我正在尝试批量重命名几百个文件,其中包含\ u0026; 推入文件名而不是和/或。 我试过用: rename s/”\\u0026amp;”/”and”/g *但是得到像Excision \uand Datsik – Calypso.mp3这样的名字Excision \uand Datsik – Calypso.mp3你可以看到\u没有正确转义。 什么是逃避我的方式\ ?? 谢谢

无法在Ubuntu 17.10存储库中找到ack

我试图通过apt安装ack ,但它似乎已经不再可用于回购。 都: sudo apt install ack sudo apt install ack-grep 给出以下错误: E: Package ‘ack-grep’ has no installation candidate 是否在17.10存储库中不再可用?

yum whatprovides’perl(Foo :: Bar)’等同于apt还是dpkg?

这肯定与这个问题有关 ,但我觉得它没有重叠,所以我们走了。 如何在Ubuntu上获得以下命令的function(和/或Debian作为奖励): yum whatprovides ‘perl(Foo::Bar)’ 显然,我可以尝试依赖包以某种方式结束类似于Perl中的命名空间的文件夹结构,但我正在寻找等价的东西,即同样简短和琐碎。 但是,如果它在Ubuntu上不能简单地工作,我可以使用更长的路径并创建我自己的函数。 对于这个问题,请考虑10.04或更新版本。

Bash创建自定义字符串

怎么可能像bash一样模式 ROW1 n1 n2 n3 n4 使用bash某个命令或者只是perl来完成最多300个…分隔符需要是\t 如上