SHIFT -JIS может кодировать довольно неразборчивые вещи,
% cat phrase
?k?????? ???????????? ???????? ?????? ?????????????? ????????????????????.
% hexdump -C phrase
00000000 82 6b 82 89 82 8b 82 85 20 82 91 82 95 82 89 82 |.k.............|
00000010 8c 82 8c 82 93 20 82 95 82 90 82 8f 82 8e 20 82 |..............|
00000020 94 82 88 82 85 20 82 86 82 92 82 85 82 94 82 86 |...............|
00000030 82 95 82 8c 20 82 90 82 8f 82 92 82 90 82 85 82 |...............|
00000040 8e 82 94 82 89 82 8e 82 85 2e 0a |...........|
0000004b
% iconv -f SHIFT-JIS -t UTF-8 < phrase
Like quills upon the fretful porpentine.
Изображения также необходимы для решения проблем с кодированием, так как некоторые программы отображения будут «тофу» отображать текст (белыми прямоугольниками ), в то время как другие отображают его просто нормально, или могут быть различные другие разногласия по поводу того, как вещи отображаются только изображение поможет прояснить (ну, изображение и шестнадцатеричный дамп...)
Они взяты из полноширинного диапазона Unicode , который начинается примерно с U+FF01. Еще больше удовольствия можно получить с The Confusables .
Сначала вам потребуются некоторые средства для генерации текста в нестандартных -диапазонах Юникода либо с помощью автоматизации, либо путем склеивания фраз вручную. Вот конвертер, который берет диапазон a-zA-Z
и переводит их в полный диапазон ширины:
#!/usr/bin/env perl
use 5.24.0;
use warnings;
die "Usage: not-ascii...\n" unless @ARGV;
my $s = '';
for my $c ( split //, "@ARGV" ) {
if ( $c =~ m/[a-z]/ ) { # FF41
$s.= chr( 0xFF41 + ord($c) - 97 );
} elsif ( $c =~ m/[A-Z]/ ) { # FF21
$s.= chr( 0xFF21 + ord($c) - 65 );
} else {
$s.= $c;
}
}
binmode *STDOUT, ':encoding(UTF-8)';
say $s;
Затем мы можем растянуть нашего Шекспира на полную ширину и закодировать его с помощью SHIFT -JIS:
% not-ascii 'Like quills upon the fretful porpentine.' \
| iconv -f UTF-8 -t SHIFT-JIS > phrase
SHIFT -Было обнаружено, что JIS можно использовать для этой цели, выполняя перебор -принудительного преобразования ввода UTF -8 во все кодировки, перечисленные iconf -l
. Большинство других кодировок не очень интересны,или не удалось преобразовать UTF -8:
#!/bin/sh
IFS=' '
iconv -l | while read e unused; do
printf "$e "
printf "test phrase\n" | iconv -f UTF-8 -t "$e"
done
хотя вам действительно нужна программа для просмотра шестнадцатеричных данных, чтобы проверить результаты:
%./brutus-iconv > x
iconv: (stdin):1:0: cannot convert
iconv: (stdin):1:0: cannot convert
iconv: (stdin):1:0: cannot convert
iconv: (stdin):1:4: cannot convert
iconv: (stdin):1:0: cannot convert
% hexdump -C x
00000000 41 4e 53 49 5f 58 33 2e 34 2d 31 39 36 38 20 74 |ANSI_X3.4-1968 t|
00000010 65 73 74 20 70 68 72 61 73 65 0a 55 54 46 2d 38 |est phrase.UTF-8|
00000020 20 74 65 73 74 20 70 68 72 61 73 65 0a 55 54 46 | test phrase.UTF|
00000030 2d 38 2d 4d 41 43 20 74 65 73 74 20 70 68 72 61 |-8-MAC test phra|
...
find. -type -f 'AFP_Afpinfo' -delete
неверно или даже недействительно -перед AFP_Afpinfo
должно предшествовать -name
или -iname
, и тогда будут сопоставляться файлы, полное имя которых точно соответствуетAFP_Afpinfo
(регистру -нечувствительно, в случае-iname
).
Если вы хотите найти файлы, имена которых заканчиваются на _AFP_Afpinfo
, но только в тех случаях, когда им не предшествует точка, вы можете сделать это либо с помощью
find -type f -name '*[^.]_AFP_Afpinfo'
где [^.]
означает любой символ, кроме .
или использующий
find -type f \( -name '*_AFP_Afpinfo' ! -name '*._AFP_Afpinfo' \)
Они не совсем эквивалентны -последнее выражение будет соответствовать _AFP_Afpinfo
, тогда как первое требует, по крайней мере, один не -символ точки перед строкой.
В любом случае, я настоятельно советую сначала протестировать -print
вместо -delete
.
Нет, это не так.
Попробуйте с -print
вместо -delete
.
.
в имени файла нет специального .
не является особым :это просто обычный символ. В DOS и CP/M он особенный, но вы их не используете. В MS -подстановочные знаки Windows CMD, оканчивающиеся на .*
, являются специальными:
n.*
делаетn
n.*.*
делает n.*
, а *.*.*
делает*.*
*.*
означало все файлы (все файлы имели в себе .
. .
для Unix особенная. Это не так, это просто символ (, за исключением случаев, когда это первый символ имени файла -).