Atualmente estou escrevendo um script que facilita a montagem de dispositivos LUKS. No script eu tenho um nome de ponto de montagem padrão ( data_1
), - no entanto, se um ponto de montagem como esse já existir, quero incrementar o sufixo do número, testar novamente e assim por diante, até encontrar uma string que ainda não seja um ponto de montagem.
Por exemplo, posso listar pontos de montagem assim: lsblk -o MOUNTPOINTS
.
Vamos supor que a saída seja:
/
/boot
/mnt/data_1
/mnt/data_2
/mnt/data_3
/var/lib/docker
Meu nome de ponto de montagem padrão é data_1
. Agora eu quero obter um novo nome de ponto de montagem válido. Nesse caso, seria data_4
, porque data_1
, data_2
e data_3
já existe. Qual é a maneira mais fácil de obter um nome que é incrementado assim? Eu suponho que posso fazer alguma mágica awk, talvez?
Na verdade,
awk
pode vir para o resgate. Neste snippet, o prefixo do ponto de montagem édata
, e é separado de seu número de sequência por um sublinhado.Saída do seu exemplo
Ou, se você definir
mp='/mnt/data'
, obterá/mnt/data_4
. Qualquer um funcionará.