Создание раздела для Windows 10 с LVM

Поскольку вы спрашивали о perl конкретно, возможно, это можно сделать с помощью спецификатора свойства \p{ARABIC} unicode perl, хотя, кажется, необходимо декодировать кодировку UTF-8 перед применением теста регулярного выражения.

В своем простейшем случае вы можете просто удалить неарабские символы и перекодировать:

$ perl -MEncode -lpe '$_ = decode("UTF-8",$_); s/\P{ARABIC}+//g; $_ = encode("UTF-8", $_)' yourfile.csv 

أستطيع
كما
شئ
منذ
لذا
واحد
جدا
يمكنك
لديك
الرجل
يبدو
كلا
لدي
أوه
تفعل
سيدي

Если вы хотите обработать CSV чуть более структурированным способом, вы мог бы сделать что-то вроде этого:

#!/usr/bin/perl -wl

use strict;
use Encode;

my @F;
my @matches;
my $infile = $ARGV[0];

open FILE, $infile or die $!;

while (<FILE>) {
  @F = split(',');
  push @matches, grep { decode("UTF-8",$_) =~ /\"\p{ARABIC}+\"/ } @F;
}

print join ", ", map {$_ =~ s/\"//g; $_} @matches;

Повторное тестирование с предоставленными данными как yourfile.csv:

$ ./print_arabic.pl yourfile.csv
كما, شئ, منذ, لذا, واحد, جدا, يمكنك, لديك, الرجل, يبدو, كلا, لدي, أوه, تفعل, سيدي

[По какой-то причине запятая и пробел переключаются, когда арабский текст вставляется в браузер из моего терминала - возможно, из-за свойства скрипта справа налево?]

1
задан 22 September 2017 в 18:22

0 ответов

Другие вопросы по тегам:

Похожие вопросы: