gpt4 book ai didi

regex - perl oneliner + 如何过滤文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:21 26 4
gpt4 key购买 nike

背景:我的目标是过滤包含单词 - old 的文件

我想打印除包含旧单词(大写或小写字母)之外的所有文件,

根据以下规则:

如果 Az-zZ 位于旧名称之前或旧名称之后,则应打印该行

如果 Az-Zz 位于旧名称之后且旧单词之前,则应打印该行

如果 0-9 位于旧名称之后且旧单词之前,则应打印该行

如果 0-9 在旧名称之前并且在旧名称之后不是 Az-zZ 或 0-9,则不应打印该行

如果 0-9 在旧名称之后且旧名称之前不是 Az-zZ 或 0-9,则不应打印该行

示例

  /DIR3/DATA/A4/Via/OOld/TriR.txt            --> should  be print
/DIR4/DATA/A4/Via/AOld1/Comne.txt --> should be print
/DIR5/DATA/A4/Via/BOld/TriR.txt --> should be print
/DIR5/DATA/A4/Via/aOld/TriR.txt --> should be print
/DIR5/DATA/A4/Via/1OldA/TriR.txt --> should be print
/DIR5/DATA/A4/Via/POld1/TriR.txt --> should be print
/DIR4/DATA/A4/Via/1Old1/Comne.txt --> should be print
/DIR4/DATA/A4/Via/1Old1/Comne.txt --> should be print
/DIR4/DATA/A4/Via/Comne.txt --> should be print


/DIR1/DATA/A4/Via/5Old/CentalS.txt --> should not be print
/DIR4/DATA/A4/Via/Old1/Comne.txt --> should not be print
/DIR1/DATA/A4/Via/Old/CentalS.txt --> should not be print
/DIR4/DATA/A4/Via/Old11/Comne.txt --> should not be print
/DIR4/DATA/A4/Via/OLD@/Comne.txt --> should not be print
/DIR4/DATA/A4/Via/.OLd/Comne.txt --> should not be print
/DIR4/DATA/A4/Via/home/Comne.Old_txt --> should not be print
/DIR4/DATA/A4/Via/home/Comne.old_txt --> should not be print
/DIR4/DATA/A4/Via/home/Comne.0old_txt --> should not be print
/DIR4/DATA/A4/Via/home/Comne.old6_txt --> should not be print
/DIR4/DATA/A4/Via/home/Comne___0old_txt --> should not be print

请告知如何通过 perl oneliner line 实现这一点语法

 echo $PATH | perl one liner line

最佳答案

如果文件路径在单个文件中,那么您可以编写

perl -ne'$w='old';print if /[a-z]$w|$w[a-z]|[0-9]$w[0-9]/i' myfile

或者,如果您愿意的话

perl -ne'print if /(.)old(.)/i && "$1$2" =~ /[a-z]|[0-9]{2}/i' myfile

实际上,您似乎想过滤掉 PATH 环境变量的成员,因此您需要

perl -E'say for grep /(.)old(.)/i && "$1$2" =~ /[a-z]|[0-9]{2}/i, split /:/, $ENV{PATH}'
<小时/>

更新

我误解了你的问题。这应该适合你

perl -lnE'/(.)old(.)/i && "$1$2" !~ /[a-z]|[0-9]{2}/i or say for /[^:]+/g'

我不明白您要求将 PATH 通过管道传递给它指定给定路径,因此这适用于任何一个。您也可以在命令后面放置输入文件

关于regex - perl oneliner + 如何过滤文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24721200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com