¿Qué script de shell debo usar en Linux para reemplazar un grupo con n líneas de texto con una sola línea?
Tengo un archivo como:
a b c * d e f * g h i *y quiero obtener un archivo como:
abc def ghipuede usar awk
awk '{if ($0=="*"){print s;s=""}else{s=s$0}}' fileuna manera bash de esto es
while read x do [ "$x" == "*" ] && echo || echo -n $x done < filemanera sed:
sed ':a;N;$!ba;s/\n//g' < t | sed 's:*:\n:g't es el archivo que desea cambiar.
referencias: ¿Cómo puedo reemplazar una nueva línea (\ n) usando sed? ¿Por qué sed no reemplaza todas las ocurrencias?
El primer comando reemplaza \n con nada. el segundo reemplaza * con \n.
sed es una herramienta de edición de secuencias muy poderosa, por cierto, sabiendo que puede ayudarlo de más formas de las que puede imaginar.
Aparte de la solución awk:
tr '\n' ' ' < Input.txt |sed 's/ //g' | tr '*' '\n'