chtag não funciona no zOS unix

1

Estou tentando marcar arquivos ASCII no shell do host zOS, portanto, não é necessário especificar a página de códigos na linha de comando.

> echo > iso.txt
> chtag -t -c 819 iso.txt
> vi iso.txt

Digite "Olá" e saia e salve

> ls -T iso.txt
t ISO8859-1   T=on  iso.txt
> od -x iso.txt
0000000000      C885    9393    9615

examinando o arquivo iso.txt mostra que ele contém EBCDIC.

Como defino as ferramentas para usar o atributo da tag da página de códigos? Observe que especificar explicitamente a página de código usando -W filecodeset=819 funciona.

    
por Stavr00 28.10.2016 / 17:26

1 resposta

4

Existem mecanismos de suporte para fazer a conversão automática com base na marcação. Para fazer o que você tem interesse, repliquei seu cenário no meu sistema z / OS 2.3. Para realizar o que você deseja, você pode definir _BPXK_AUTOCVT=ON . Eu repeti o caso de teste fornecido e depois defini _BPXK_AUTOCVT=ON para demonstrar o comportamento desejado trabalhado.

$ echo > iso.txt
$ chtag -t -c 819 iso.txt
$ ls -T iso.txt
t ISO8859-1   T=on  iso.txt
$ vi iso.txt  (enter Hello, save then exit)
$ od -x iso.txt
0000000000      C885    9393    9615
0000000006

A palavra Hello é armazenada como EBCDIC, apesar de ter marcado o arquivo como 819.
Em seguida, a configuração de _BPXK_AUTOCVT=ON ativa a conversão automática.

$ export _BPXK_AUTOCVT=ON
$ echo > iso.txt
$ chtag -t -c 819 iso.txt
$ vi iso.txt  (enter Hello, save then exit)
$ od -X iso.txt
0000000000          48656C6C        6F0A0000
0000000006

Aqui você pode ver que a função de conversão automática armazenou o texto no conjunto de códigos correto.

Referências:

por 08.07.2018 / 05:16