Awk 删除根据模式解释的重复项失败
我对这些awk sed脚本有一些问题Awk 删除根据模式解释的重复项失败,awk,sed,Awk,Sed,我对这些awk sed脚本有一些问题 sed -E 's/(^[a-zA-Z]+)([[:space:]]+[a-zA-Z]+){0,1}.*/\1\2/' file1.txt | sort | uniq > zz.txt 或其他同等软件(windows GNU) linux的另一个例子是 sed -E 's/\s+\S+\s+[0-9]\S+$|[0-9].*//;s/(\S+\s+\S+)\s+\S+$/\1/ H;x;s/((\n[^\n]*)(\n[^\n]*)*
sed -E 's/(^[a-zA-Z]+)([[:space:]]+[a-zA-Z]+){0,1}.*/\1\2/' file1.txt | sort | uniq > zz.txt
或其他同等软件(windows GNU)
linux的另一个例子是
sed -E 's/\s+\S+\s+[0-9]\S+$|[0-9].*//;s/(\S+\s+\S+)\s+\S+$/\1/
H;x;s/((\n[^\n]*)(\n[^\n]*)*)\2$/\1/;x;$!d;x;s/.//' file
这些脚本做什么?得到一份这样的清单
Chi Allegati N.22021.htm
Casabella Marzo 2021.pdf
Casabella Febbraio 2021.pdf
Chi Allegati N.22021.pdf
使用sed/awk脚本后,您将获得此输出
Casabella
Chi Allegati
A porte chiuse
A porte chiuse special
那么问题在哪里呢?好的,现在考虑另一个列表
(Ebook ITA Fumetti) Genius 021 Bersaglio A Gog.cbr
(Ebook ITA Fumetti) Genius 022 Poker Di Delitti.cbr
Corna Vissute - La moglie del ladro.cbz
Corna vissute - Nuova serie 011 - Un'offerta irresistibile.cbr
Il piccolo sceriffo 20 (Dardo 1992-02) [c2c CapitanUltra].cbz
Il piccolo sceriffo 23 (Dardo 1992-05) [c2c dinofelix].cbr
Il mondo di Arkadi - Caza 01 - Gli occhi di Or'Fe (by aquila & Janesek).cbr
Il mondo di Arkadi - Caza 02 - Il grande esterno (by aquila & Janesek).cbr
Il segno di Zorro 21 (Edizioni del fanciullo 9-1976)(BYPico57).cbr
Il segno di Zorro Serie d'oro 07 - Il mistero della miniera (Edizioni del fanciullo 1975-10-01) [c2c Dinofelix].cbr
L'Uomo Mascherato 06 - Il ratto di diana (Nerbini 1938-09) [c2c Scaricatore17-Gitra].cbr
L'Uomo Mascherato 08 - Il ritorno di Diana (Nerbini 1940-10) [c2c Scaricatore17-Gitra].cbr
Le leggende di Batman 017 (Play Press 1997-12 c2c) By Samox.cbz
Le leggende di Batman 018 (Planeta 1998-01 c2c) [Play Press] By Samox.cbz
不幸的是,脚本不再有效。事实上,我希望获得这个输出(或非常接近的输出),但这是不可能的
Corna Vissute
Genius
Il mondo di Arkadi
Il piccolo sceriffo
Il segno di Zorro
Il segno di Zorro Serie d'oro
L'Uomo Mascherato
Le leggende di Batman
脚本背后的逻辑:
A porte chiuse 054 - Come la prima notte (Ediperiodici 1985-11) [noc2c Charles].cbr
A porte chiuse 097 - Il demone nella bottiglia (Ediperiodici 1989-06) [c2c noedit Charless].cbr
A Porte Chiuse 138-139 - Una viziosa incallita.cbr
A porte chiuse Special 13 - Il primo amore-Il viziaccio [228pag] (Ediperiodici 1986-03) [c2c Charles-Edit Gitra].cbr
A Porte Chiuse Special 020 [Fumetti.Erotici](1400~).cbz
但我只期望这个结果
Casabella
Chi Allegati
A porte chiuse
A porte chiuse special
但是脚本返回这个
A Porte
A porte
编辑:另一个问题:我有
Il destino di Kakugo - vol 09 (MANGA ITA)(Scan & Edit by DDT)(DDT0580)(MQ jpg).cbr
Il mensile di Barbapap… N. 02 - [A.Mondadori] [1977-01] [ITA][c2c](no pagina centrale).cbz
但它会回报我
il
Il destino di Kakugo
Il mensile di Barbapap
Y
Y L'ultimo Uomo
Yiu
或者我有
Y L'Ultimo Uomo.-.Ragazze vol 07.-.(Magic Press)(c2c aquila).cbr
Y L'ultimo Uomo [08] Bambole Di Carta (Magic Press)(c2C Aquila).cbr
Yiu 01 - Inferno.cbr
Yiu 03 - Assassini (Scanlation, Ita, By Eleinad For Lc22Db).cbr
但它会回报我
il
Il destino di Kakugo
Il mensile di Barbapap
Y
Y L'ultimo Uomo
Yiu
但我想
Il destino di Kakugo
Il mensile di Barbapap
Y L'ultimo Uomo
Yiu
我上次回答中修改的
awk
脚本应该适合您:
awk'{sub(/^\([^)]+\)*/,“”)匹配($0,/^[a-zA-Z][a-zA-Z\047]*(+[a-zA-Z\047]+)*/){s=substr($0,1,RLENGTH);unq[tolower(s)]=s}END{for(在unq中的i)打印unq[i]}file.txt
佐罗世界杯
洛莫·马斯切拉托
阿尔卡迪世界报
短笛短笛
蝙蝠侠莱根德酒店
粘角
伊尔塞格诺迪佐罗酒店
天才
更具可读性的版本:
awk'
{sub(/^\([^)]+\)*/,“”)}
匹配($0,/^[a-zA-Z][a-zA-Z\047]*(+[a-zA-Z\047]+)*/){
s=substr($0,1,RLENGTH)
unq[tolower(s)]=s
}
结束{
(我在unq)
打印unq[i]
}'file.txt
我上次回答中修改的awk
脚本应该适合您:
awk'{sub(/^\([^)]+\)*/,“”)匹配($0,/^[a-zA-Z][a-zA-Z\047]*(+[a-zA-Z\047]+)*/){s=substr($0,1,RLENGTH);unq[tolower(s)]=s}END{for(在unq中的i)打印unq[i]}file.txt
佐罗世界杯
洛莫·马斯切拉托
阿尔卡迪世界报
短笛短笛
蝙蝠侠莱根德酒店
粘角
伊尔塞格诺迪佐罗酒店
天才
更具可读性的版本:
awk'
{sub(/^\([^)]+\)*/,“”)}
匹配($0,/^[a-zA-Z][a-zA-Z\047]*(+[a-zA-Z\047]+)*/){
s=substr($0,1,RLENGTH)
unq[tolower(s)]=s
}
结束{
(我在unq)
打印unq[i]
}'file.txt
以下是一个sed替代方案:
sed -E 's/(^[^0-9\-\.\[\…\-]* ?).*/\1/' input | sort -u
以下是一个sed替代方案:
sed -E 's/(^[^0-9\-\.\[\…\-]* ?).*/\1/' input | sort -u
第二个输入文件格式与第一个简单的示例大不相同,没有明确的模式,除非我使用大脑而不是程序(例如,比较
(电子书ITA Fumetti)Genius
输入行与30 Giorni\u di\u Notte\u
输入行)。我们如何区分它们?在想要的输出中存在潜在问题:Il mondo di Arkadi
出现两次,Grandi eroi
不存在。一种解决方案是,取连续行之间的共同点,但即使这样也不能完全满足您的需求。@LudovicKuty是的,您是对的,我从示例列表中删除了30_Giorni_Notte
和Grandi eroi
。现在能容易些吗Il mondo di Arkadi
它出现了两次,因为我在复制时犯了一个错误,很抱歉,上面的解决方案取决于几个部分的融合-单个部分中的任何错误都会影响最终的解决方案。根据您上面的评论,确定每一行中可以匹配的重复元素是最终解决方案的内在要求。一旦解决方案的这一部分是正确的,其余部分将遵循。再看一下列表中的第一项。第二个输入文件格式与第一个简单示例差别很大,没有明确的模式,除非我用大脑而不是程序(例如,比较(电子书ITA Fumetti)Genius
输入行与30 Giorni_di_Notte
输入行)。我们如何区分它们?在想要的输出中存在潜在问题:Il mondo di Arkadi
出现两次,Grandi eroi
不存在。一种解决方案是,取连续行之间的共同点,但即使这样也不能完全满足您的需求。@LudovicKuty是的,您是对的,我从示例列表中删除了30_Giorni_Notte
和Grandi eroi
。现在能容易些吗Il mondo di Arkadi
它出现了两次,因为我在复制时犯了一个错误,很抱歉,上面的解决方案取决于几个部分的融合-单个部分中的任何错误都会影响最终的解决方案。根据您上面的评论,确定每一行中可以匹配的重复元素是最终解决方案的内在要求。一旦解决方案的这一部分是正确的,其余部分将遵循。请再看一看你名单上的第一项。是的,谢谢,非常好,但除了一件事,请看这里:-如果我有《卡库戈的命运》第09卷(马…,《巴尔巴帕的男人》第02页-[A.它返回我il
,il destino di Kakugo
,和il mensile di Barbapap
。但是我不需要在列表中也包含il
。是的,我测试了,它工作正常。谢谢!是的,谢谢,非常好,但除了一件事,请看这里:-如果我有il destino di Kakugo-vol 09(MA…
,巴尔巴巴普男子监狱…N.02-[A.
它返回我Il
,Il destino di Kakugo
,和Il mensile di Barbapap
。但是我不需要在列表中也包含Il
。是的,我测试了,它工作正常。谢谢!