http://qs1969.pair.com?node_id=1195065


in reply to Re: Files with arabic names
in thread Files with arabic names

I'm looking for script in UNIX based systems. I have list of files in file. I'm able to process and delete files in English ( ASCII ) language through unlink function , but unable to delete these in other language.

If no such solution then I can try from windows system ( mount fs on windows ).

Any lead appreciated.

Replies are listed 'Best First'.
Re^3: Files with arabic names
by haukex (Archbishop) on Jul 13, 2017 at 19:07 UTC
    but unable to delete these in other language

    Please see How do I post a question effectively? and show us an SSCCE with which we can reproduce the problem on our end. I'd have to guess that maybe it has something to do with the encoding of the file containing the list of files, see e.g. encguess for a way to find out how it's encoded. The following works for me, my terminal is entirely UTF-8. Note how I specify the file's encoding in the open.

    $ touch 'jdid rai dz cheb mourad 2017- No No No Madamti new album شاب مراد كالعادة يصرع'
    $ touch '✪ Lotfi Double Kanon✪ 2017 جديد ⁄ أنا'
    $ ls jdid* *Lotfi* >list.txt
    $ cat list.txt 
    jdid rai dz cheb mourad 2017- No No No Madamti new album شاب مراد كالعادة يصرع
    ✪ Lotfi Double Kanon✪ 2017 جديد ⁄ أنا
    $ encguess list.txt
    list.txt	UTF-8
    $ perl -wMstrict
    open my $fh, '<:encoding(UTF-8)', 'list.txt' or die $!;
    chomp( my @files = <$fh> );
    close $fh;
    my $count = unlink(@files);
    print "Deleted $count files\n";
    __END__
    Deleted 2 files
    $ ls
    list.txt
    $ 
    
      every file ends with an extension contains ASCII code. ex: 37.105.87.242inacheve_(無修正)(個人撮影) 援助交際白書Np.2 - 美鈴16才.avi if i keep the file path in a text file, is there a way to read the extension of the file and delete instead of reading whole file path and encoding?