Tengo esta pregunta en una tarea. Nada funciona. ¿Alguien puede ayudarme?
Escriba un script sed que reemplace todos los nombres con una alternativa,
busca todas las palabras que:
- Comience con una capital,
- Más de dos letras
- Donde hay un espacio en blanco frente a él y
- El carácter antes del espacio en blanco no es una puntuación que termina una oración.
Reemplace esas palabras en "Derp" + los dos últimos caracteres de la palabra.
sed
find-and-replace
Jleeeeny
fuente
fuente

Respuestas:
Esto es bastante incómodo de hacer en sed, pero aquí hay una versión que puede funcionar siempre que haya un personaje (elegí
%) que nunca aparecerá en la entrada. El personaje se usa para marcar.Digamos que tiene un archivo de texto llamado
wordscon los siguientes contenidos:El siguiente
bashscript hará el trabajo:El resultado de lo anterior será (separé cada uno por una nueva línea):
Así es como funciona:
%. Por lo tanto, por ejemplo, se marcaráLatchcomo% Latch. Tenga en cuenta el espacio, llamaré a esta palabra espacial..,!o?- se puede añadir otros, como), o como si es necesario)Derptransformación real , es decir, reemplazará todas las palabras espaciales marcadas%conDerpXX,XXsiendo los dos últimos caracteres de esa palabra espacial.Tenga en cuenta que hay tecnicismos que no se abordaron aquí, como:
Être)Oceansde"Oceans Eleven"considerar una palabra a pesar de que tiene"delante?)y así.
Para que sea puramente un
sedscript, solo concatena:Obviamente, en el mundo real, no usaría
sedpara hacer tareas como esta. Por otra parte, probablemente tampoco tendría tareas como esta ... :)fuente
Esto podría funcionar para usted:
fuente