ubuntu - procesamiento de texto - oración en una línea usando awk

CorePress2023-09-17  1

He extraído datos mediante comandos y los guardé en un archivo kwrite, pero ahora quiero recuperar algunos datos importantes, pero lo ideal es que los datos estén en 1 línea, mientras que en mi caso se dividen en 2,3 líneas. comenzar con Jpak es de interés. Datos:

Jpak= its just a sample data for posting,
solve the query asap

Breadth=44


***** less*****
--
Effective search space used: 2418848120


Jpak= To work late into the night, alluding to the
 time before electric lighting

Breadth=75


***** less*****
--


Jpak= Speak of an issue, (mostly current) which ,
many people ,
are talking 

Breadth=22


***** less *****
- -

Resultado deseado:

Jpak= its just a sample data for posting solve the query asap

Jpak= To work late into the night alluding to the time before electric lighting

Jpak= Speak of an issue (mostly current) which many people  are talking 
  • 2 Consulte Askubuntu.com/editing-help#code sobre cómo formatear la entrada y salida de muestra. ¿Y tú qué has probado? -muru 20 de septiembre de 2017 a las 7:43
  • ¿Qué necesitas exactamente? ¿Deberíamos buscar sólo líneas que comiencen con Jpak= o eso podría cambiar? ¿Quieres eliminar todas las comas? Edite su pregunta y aclare. -terdon 20 de septiembre de 2017 a las 7:58
  • sí, solo las líneas que comienzan con Jpak - Rea 20 de septiembre de 2017 a las 9:28


------------Respuesta------------

Solución de semilla pura

Lo siento, no estoy lo suficientemente familiarizado con awk, pero esto funciona:

sed '/Jpak=/,/^$/!d' sample|sed ':a;N;$!ba;s/\n//g;s/,/ /g;s/ \{2,\}/ /g;s/Jpak/\n\nJpak/g'

Recopilados de sed1line y ¿Cómo puedo reemplazar una nueva línea (\n) usando sed?.

Salida

Jpak= its just a sample data for posting solve the query asap

Jpak= To work late into the night alluding to the time before electric lighting

Jpak= Speak of an issue (mostly current) which many people are talking

Al usar esta cadena de comandos, la salida comienza con dos líneas vacías (no se muestran aquí), agregue |sed '1,2d' al final de la cadena para eliminarlas.




------------Respuesta------------

perl -n00E '/Jpak=/ and s/\s+/ /g and say' ex.txt
  • -n00E -- para cada párrafo separado por líneas vacíashacer gráfico...
  • /Jpak=/ y -- encuentra el patrón deseado y...
  • s/\s+/ /g -- sustituir secuencias de espacios, nuevas líneas y tabulaciones por un solo espacio
  • y decir... y decir lo que se encontró.

La salida es:

Jpak= its just a sample data for posting, solve the query asap 
Jpak= To work late into the night, alluding to the time before electric lighting 
Jpak= Speak of an issue, (mostly current) which , many people , are talking