我有两个源文件(英文文件和意大利文件)与相同的行数,我执行awk command
删除IT.txt文件中的所有行超过2个字使用awk删除2个过滤文件中的重复项
EN.txt
Santa Claus
Pigs don't fly
The son of the father
Elf
Santa Claus
Elf
Sabatons
Shoes
IT.txt
Babbo Natale
I maiali non volano
Il figlio del padre
Elfo
Babbo Natale
Elfo
Scarpe
Scarpe
所以基本上我都有这样的输出:
EN.txt
Santa Claus
Pigs don't fly
The son of the father
Elf
Santa Claus
Elf
Sabatons
Shoes
IT.txt
Babbo Natale
Elfo
Babbo Natale
Elfo
Scarpe
Scarpe
但在同一时间,我想从EN.txt文件中删除同一相关的字符串。我认为我可以处理行号(稍后,我发现了一个更好的解决方案),而不是运行另一个awk命令,以相同的方式删除EN文件中有两个以上单词的字符串,因为翻译可能与源字符串不同(比如有更多单词)。所以我需要将我的工作重点放在IT文件上,并且EN文件必须受到我启动的命令的影响。因此,我的滤波输出必须是这样的:
EN.txt
Santa Claus
Elf
Santa Claus
Elf
Sabatons
Shoes
IT.txt
Babbo Natale
Elfo
Babbo Natale
Elfo
Scarpe
Scarpe
这是我试图用(建议用前面的问题)命令和它完美的作品:awk 'NR==FNR{if(NF>3){a[NR]}else{a[NR]=1;print > "filtered_it.txt"}} NR!=FNR && a[FNR]{print > "filtered_en.txt"}' IT.txt EN.txt
但现在我想添加额外的在这个命令中,像删除重复项以获得类似这样的输出,但要小心那些意大利语可能具有相同翻译但它们各自的源字符串不同的行(如Sabatons和鞋翻译为Scarpe)。总之,我需要同时从两个文件中删除重复项(以某种方式),而不是从运行每个命令的单个文件中删除重复项。
EN.txt
Santa Claus
Elf
Sabatons
Shoes
IT.txt
Babbo Natale
Elfo
Scarpe
Scarpe
这些主要数字是否真的出现在你的输入和输出文件中?如果是,那么编辑你的问题来说明,如果没有,那么编辑你的问题来删除它们。 –
完成...它仅用于理解;) – JohnnyKing94
将不存在于您的示例输入/输出文件中的文本放在一起并不能改进我们的理解! –