cp: quais aspas usadas em mensagens de erro?

3

Atualmente, estou mexendo em um disco rígido agonizante e, ao tentar cp dados dele, recebo erros como

cp: error reading ‘brokenFile’: Input/output error
# comparison: backtick: ', apostrophe '

Eu agora tento copiar os arquivos com falha novamente usando sed para converter as mensagens de erro em novas invocações de cp (já tive sucesso algumas vezes). Mas: quais são as aspas engraçadas? Eles são ainda diferentes no início / final. Não é backtick nem apóstrofo. Eu copiei / colei no meu regex, mas existe uma maneira melhor? Talvez usando compor?

    
por Jasper 25.04.2014 / 15:55

2 respostas

3

Os caracteres gerados são U+2018 LEFT SINGLE QUOTATION MARK ( ) e U+2019 RIGHT SINGLE QUOTATION MARK ( ). Essas são aspas simples para o idioma inglês e são geradas devido à sua localidade atual. Se o seu layout de teclado atual tiver uma tecla de composição, você poderá inseri-los com Compor < ' (aspas à esquerda) e Compor > ' (cota direita).

No entanto, se você quiser processar a saída de um comando com outras ferramentas (como, no seu caso, sed ), geralmente é mais fácil alterar o local definindo a variável de ambiente LANG to C . Dessa forma, os programas produzirão mensagens de erro (e, em geral, todas as saídas com legibilidade humana) em ASCII puro, que geralmente são mais facilmente manipuladas usando ferramentas baseadas em texto.

    
por 25.04.2014 / 17:10
5

Um comando útil para descobrir um determinado caractere é a recodificação GNU:

$ echo -n ‘’ | recode ..dump
UCS2   Mne   Description

2018   '6    left single quotation mark
2019   '9    right single quotation mark

Ou o comando unicode do Debian :

$ unicode ‘’
U+2018 LEFT SINGLE QUOTATION MARK
UTF-8: e2 80 98  UTF-16BE: 2018  Decimal: &#8216;
‘
Category: Pi (Punctuation, Initial quote)
Bidi: ON (Other Neutrals)

U+2019 RIGHT SINGLE QUOTATION MARK
UTF-8: e2 80 99  UTF-16BE: 2019  Decimal: &#8217;
’
Category: Pf (Punctuation, Final quote)
Bidi: ON (Other Neutrals)
    
por 25.04.2014 / 17:27