#!/usr/bin/env perl
# TODO docs on usage here, or write perldocs below, etc.
use strict;
use warnings;
die "Usage: $0 headerfile datafile\n" if @ARGV != 2;
my ($headerfile, $datafile) = @ARGV;
open(my $hfh, '<', $headerfile) or die "could not open '$headerfile': $!\n";
open(my $dfh, '<', $datafile) or die "could not open '$datafile': $!\n";
readline $hfh; # skip the header line
my $lineno = 1;
while (!eof($hfh) and !eof($dfh)) {
my $convert_to = join '', (split ' ', scalar readline $hfh)[-2,-1];
die sprintf "no conversion at $headerfile:%d\n", $lineno+1
if !defined $convert_to;
$_ = readline $dfh;
die "no data to convert at $datafile:$lineno\n" if !defined;
eval "tr/01/$convert_to/, 1" or die $@;
print;
$lineno++;
}
en_DE
не существует в качестве языкового стандарта по умолчанию, поэтому вы не можете выбрать английский язык, локализованный для немецкоязычных -стран, в качестве языкового стандарта во время установки.(Почему следует использовать обновление локали -вместо прямой установки ЯЗЫКА? описывает проверки, связанные с выбором локали.)
Есть два подхода к достижению цели.
Другой способ — настроить параметры локали -более детально, используя различные LC_
переменные ; например:
export LANG=en_US.UTF-8
export LC_MONETARY=de_DE.UTF-8
export LC_TIME=de_DE.UTF-8
или, если вы хотите, чтобы по умолчанию использовался немецкий язык, за исключением сообщений:
export LANG=de_DE.UTF-8
export LC_MESSAGES=en_US.UTF-8
(и сбросьте любые другие конфликтующие LC_
переменные, в частности LC_ALL
, которая переопределяет все остальные настройки ). Вы можете проверить настройки с помощью программы locale
; см. Как работает программа "locale"? для получения подробной информации.
На основе принятого ответа Стивена и этого поста я создал желаемую en_DE
локаль вместе с некоторыми объединенными инструкциями по установке для загрузки здесь . Не стесняйтесь попробовать и оставить отзыв.