Centos/Linux Bashsed: masa convertir entre épocas al azar otro texto
Tengo un archivo de registro, que tiene gran cantidad de texto y números en época por todo el lugar. Quiero reemplazar todas las épocas donde sea que estén en una fecha/hora legible.
He estado queriendo esto vía sed, ya que parece ser la herramienta para el trabajo. Parece que no puedo obtener la parte de reemplazo de sed para analizar realmente la variable (época) para la conversión.
muestra de lo que estoy trabajando ...
echo "Some stuff 1346474454 And not working" \
| sed 's/1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/'"`bpdbm -ctime \&`"'/g'
Some stuff 0 = Thu Jan 1 01:00:00 1970 And not working
La parte bpdbm convertirá una variable época suministrado en la fecha útil. Así ...
bpdbm -ctime 1346474454
1346474454 = Sat Sep 1 05:40:54 2012
Entonces, ¿cómo puedo obtener el elemento "encontrado" para analizar en un comando. Como parece que no puedo hacer que funcione.
Cualquier ayuda sería encantadora. Si hay otra manera, sería genial ... pero sospecho que sed será más rápido.
¡Gracias por su tiempo!
ejecutar esto con 'set -vx' para ver por qué no está funcionando.Sed tiene que procesar la línea de datos antes de que "conozca" el valor de '&', la sustitución de cmd tendría que retrasarse hasta el último punto, pero es probable que lo primero que se procese. Puedes hacer esto fácilmente en awk. Tu fe en Sed es conmovedora ;-). ¡Buena suerte! – shellter
Bueno, sí ... me gusta intentar y mantener sed y awk donde sea posible. Tendré otro juego con Sed mañana, no me he dado por vencido en una resolución basada en sed – user1649704