Preciso alterar a ordem de uma string no AIX, mas com o comando cut
não consigo fazer
Ex:
echo FT0215202301.xml | cut -b 7-10,5-6,3-4
Resultado:
02152023
Esperado :
20230215
Preciso alterar a ordem de uma string no AIX, mas com o comando cut
não consigo fazer
Ex:
echo FT0215202301.xml | cut -b 7-10,5-6,3-4
Resultado:
02152023
Esperado :
20230215
Algumas ideias usando
awk
oused
:Mesmas soluções, mas usando uma string here para eliminar o subshell:
Se o nome do arquivo for armazenado em uma variável, você poderá usar
bash's
a capacidade de substring (${var:start:length}
) e eliminar a necessidade de outros binários (por exemplo,awk
,sed
), por exemplo:NOTA:
bash
a indexação de strings começa na posição 0Enquanto as soluções acima geram a saída esperada do OP de
20230215
, o OPcut -b 7-10,5-6,3-4
parece indicar OP may want20231502
como a saída esperada. Se esse for o caso, os comandos modificados seriam:Eu usaria a expansão de substring do Bash :
Com
awk
match
a função GNU e sua capacidade de usar grupos de captura em um array, pode-se tentar o seguinte código. Usando regex^.{2}(.{4})(.{4}).{2}\.xml$
que cria 2 grupos de captura e salva valores em um array chamadoarr
. que estamos usando para imprimir os valores conforme o requisito.