linux - sustituir - sed reemplazar/
Usar sed para dividir una cadena con un delimitador (6)
Tengo una cadena en el siguiente formato:
string1:string2:string3:string4:string5
Estoy tratando de usar sed
para dividir la cadena :
e imprimir cada subcadena en una nueva línea. Esto es lo que estoy haciendo:
cat ~/Desktop/myfile.txt | sed s/:///n/
Esto imprime:
string1
string2:string3:string4:string5
¿Cómo puedo hacer que se divida en cada delimitador?
Esto debería hacerlo:
cat ~/Desktop/myfile.txt | sed s/:///n/g
Esto podría funcionar para usted (GNU sed):
sed ''y/://n/'' file
o quizás:
sed y/:/$"/n"/ file
Para dividir una cadena con un delimitador con sed, diga:
sed ''s/delimiter//n/g''
Por ejemplo, para dividir usando :
como un delimitador:
$ sed ''s/://n/g'' <<< "he:llo:you"
he
llo
you
En este caso particular, te perdiste la g
después de la sustitución. Por lo tanto, se acaba de hacer una vez. Ver:
$ echo "string1:string2:string3:string4:string5" | sed s/:///n/g
string1
string2
string3
string4
string5
g
significa g
lobal y significa que la sustitución tiene que hacerse globalmente, es decir, para cualquier ocurrencia. Ver que el valor predeterminado es 1 y si pones por ejemplo 2, se hace 2 veces, etc.
En conjunto, en su caso necesitaría usar:
sed ''s/:///n/g'' ~/Desktop/myfile.txt
Tenga en cuenta que puede usar directamente la sintaxis del sed ... file
lugar de la tubería innecesaria: cat file | sed
cat file | sed
Si está utilizando gnu sed, puede usar /x0A
para newline:
sed ''s/://x0A/g'' ~/Desktop/myfile.txt
Usando simplemente tr :
$ tr '':'' $''/n'' <<< string1:string2:string3:string4:string5
string1
string2
string3
string4
string5
Si realmente necesitas sed :
$ sed ''s/://n/g'' <<< string1:string2:string3:string4:string5
string1
string2
string3
string4
string5
Usar /n
in sed
no es portátil. La forma portátil de hacer lo que quieras con sed
es:
sed ''s/://
/g'' ~/Desktop/myfile.txt
pero en realidad, este no es un trabajo para sed
todos modos, es el trabajo que se creó para hacer:
tr '':'' ''
'' < ~/Desktop/myfile.txt