Как включить количество строк UTF-16LE/CR-LF/BOM файл?

Согласно Системному требованию для CCRC, действительно не поддерживается Fedora.

Но клиент CCRC является основанным на RCP приложением или плагином Eclipse.

Таким образом, если можно сделать выполнения Eclipse3.6.2 в установке Fedora, возможности - Вы, сможет добраться, плагин с сервера CCRC и сделать CCRC прокладывает себе путь.

Примечание: удостоверьтесь, что у Вас есть то же (или совместимый) версия между Вашим клиентом CCRC и сервером CM.

5
31.05.2012, 14:12
3 ответа

Вот сценарий жемчуга, который открывает файлы (данный как параметры командной строки) в UTF-16 (порядок байтов, обнаруженный через BOM), и считает строки.

#! /usr/bin/env perl
use strict;
use warnings;

while (my $file = shift @ARGV) {
    my $fh;
    if (!open($fh, '<:encoding(UTF-16)', $file)) {
        print STDERR "Failed to open [$file]: $!\n";
        next;
    }
    my $count = 0;
    $count++ while (<$fh>);
    print "$file: $count\n";
    close $fh;
}

(Умирает, если BOM не понят.)

5
27.01.2020, 20:33
  • 1
    Хороший, спасибо. Это работает хорошо. Я нахожусь все еще на внешних краях жемчуга, таким образом, это - хороший пример изучения для меня. Это кажется столь же простым как сообщение жемчуга считать файл как UTF-16..Мне это нравится... Этот метод не имеет никакого управления данными (определенное плюс), и метод Warren's очень прост записать (никакие сценарии не являются также определенным плюс). таким образом, оба ответа являются большими... –  Peter.O 31.05.2012, 17:06

Я преобразовал бы файл в UTF-8 с окончаниями строки LF, таким образом, я могу непосредственно использовать собственные инструменты:

$ iconv -f UTF-16LE -t UTF-8 myfile.txt | dos2unix | wc -l

dos2unix часть является самым хитрым битом. Существует много вариантов этого инструмента, плавающего вокруг, не, все из которых знают, как использоваться в конвейере. Иногда это называло что-то еще, как d2u.

6
27.01.2020, 20:33
  • 1
    патча Спасибо Варен... Я не имею также d2u или dos2unix в моей Ubuntu repo, но во всем этом, я только что обнаружил аналогичное решение.. Это является почти таким же, и немного отличается, таким образом, здесь это для получения общей информации... <"$file" recode UTF-16LE..UTF-8 |wc -l ... recode использование iconv библиотеки, и добавили понятие surfaces который я нахожу для руки. –  Peter.O 31.05.2012, 16:47
  • 2
    @Peter. O:В самом деле? sudo apt-get install dos2unix работавший просто великолепно здесь на моих 11,10 полях. Эта версия dos2unix работы в конвейерах. С тех пор iconv(1) кажется, установлен по умолчанию, который должен быть всем, в чем Вы нуждаетесь. –  Warren Young 31.05.2012, 17:20
  • 3
    @Peter. O: Я просто обновил то поле до 12,04, и dos2unix находится все еще в пакете запаса repo. Затем я установил старые стабильные 8,04 флажков, и нет названного пакета dos2unix, но существует пакет tofrodos который включает a fromdos управляйте symlinked к dos2unix, который работает в конвейере. –  Warren Young 31.05.2012, 18:17
  • 4
    Для пользы интереса я сейчас установил новую Ubuntu 11.10 как VM и dos2unix не разоблачает в этом defaut систему, также... Единственное заполнение клавишей Tab для dos dosfs... О, хорошо не имеет значения, если окончания строки являются CR-LF или просто LF. для простого количества строки, пока это - UTF-8 (что означает, что там являются не посторонними \x0a байты, плавающие о. –  Peter.O 31.05.2012, 19:06
  • 5
    Это находится во вселенной repo. Возможно, у Вас есть только основной repo, включенный в /etc/apt/sources.list? –  Warren Young 31.05.2012, 19:32

Если у вас версия dos2unix> = 7.1, вы можете использовать параметр -i, чтобы получить информацию о количестве разрывов строк. Также поддерживаются файлы UTF-16. Если у файла есть спецификация, dos2unix автоматически определяет, что это UTF-16, LE или BE. Если у файла нет спецификации, вы можете использовать опцию -ul, чтобы указать, что это UTF-16LE (или -ub для UTF-16BE).

dos2unix -i напечатает количество разрывов строк для DOS, Unix и Mac в указанном порядке. Пример (со спецификацией):

$ dos2unix -i utf16le.txt
      50       0       0  UTF-16LE  text    utf16le.txt

Без спецификации:

$ dos2unix -ul -i utf16len.txt
      50       0       0  no_bom    text    utf16len.txt

Дополнительную информацию см. В руководстве.

2
27.01.2020, 20:33

Теги

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