inverte o caractere de arquivo por caractere usando tac

3

Eu quero usar o tac para reverter um caractere de arquivo de texto por caractere. Na página de informações do coreutils, encontrei um exemplo dizendo: #Revista um caractere de arquivo pelo caractere tac -r -s 'x\|[^x]'

No entanto, a execução de tac -r -s parece abrir a entrada padrão em vez de imprimir o arquivo. O que significa 'x\|[^x]' e o que devo fazer?

Também observei que a saída para tac [file] e tac -r [file] é igual e eles são iguais a cat [file] . Ainda não consigo descobrir char por char reverso.

    
por Weezy 28.05.2018 / 08:29

1 resposta

5

Para reverter um arquivo, caractere por caractere, usando tac , use:

tac -r -s 'x\|[^x]'

Isso está documentado em info tac :

# Reverse a file character by character.
tac -r -s 'x\|[^x]'

-r faz com que o separador seja tratado como uma expressão regular . -s SEP usa SEP como separador . x\|[^x] é uma expressão regular que corresponde a todos os caracteres (aqueles que são x e os que não são x ).

$ cat testfile
abc
def
ghi
$ tac -r -s 'x\|[^x]' testfile

ihg
fed
cba%
$

tac file não é o mesmo que cat file , a menos que file tenha apenas uma linha. tac -r file é o mesmo que tac file porque o separador padrão é \n , que é o mesmo quando tratado como uma expressão regular e não.

    
por 28.05.2018 / 08:48

Tags