dividir cadeia com um determinado caractere para formar um caminho

1

Eu tenho uma string abc_d_e75_f10_xyz_l_11 que eu quero dividir para que eu queira construir uma string de um diretório existente desta string para cd .

Portanto, neste exemplo abc_d_e75_f10_xyz_l_11 , quero dividir usando o caractere _ no qual desejo gravar este comando cd /home/userA/abc/d_e75_f10 e negligenciar o resto da string.

    
por Tak 29.09.2014 / 00:09

3 respostas

2

Você pode fazer:

echo "abc_d_e75_f10_xyz_l_11" | sed 's/_/\//' | cut -d "_" -f1-3

Isso substituirá o primeiro _ por / , além de aparar a string.

Saída:

abc/d_e75_f10

    
por Quaxton Hale 29.09.2014 / 00:12
0

Você pode usar os recursos internos de manipulação de strings do bash shell, por exemplo,

$ var="abc_d_e75_f10_xyz_l_11"
$ echo "/home/userA/${var/_//}"
/home/userA/abc/d_e75_f10_xyz_l_11
    
por steeldriver 29.09.2014 / 00:19
0

Você quer sed .

sed é uma ferramenta para realizar operações de pesquisa e substituição no texto.

Nesse caso, parece que você deseja substituir a primeira ocorrência de _ por / .

Isso fará isso:      echo "abc_d_e75_f10_xyz_l_11" | sed "s/_/\//"

Parece estranho com as barras, mas a ideia é "s/search/replace/" . E / tem que ser escapado.

    
por dan08 29.09.2014 / 00:20