
Ejemplo de archivo.txt:
/map/1.0.0/cd/base/4/23/82.png 200
/map/1.0.0/cd/base/2/48/154.png?fefsfes 200
/map/1.0.0/cd/base/3/45/433.png?gtdrdrg 200
Necesito eliminar esto:
.png
.png?fefsfes
.png?gtdrdrg
yo uso esto
$ cat file.txt | awk '{ print $1","$2}'
para obtener resultado:
/map/1.0.0/cd/base/4/23/82.png,200
/map/1.0.0/cd/base/2/48/154.png?fefsfes,200
/map/1.0.0/cd/base/3/45/433.png?gtdrdrg,200
¿Puedo de alguna manera recuperar la columna awk '{ print $1}'
y eliminar todo lo que está después del último número?
Resultado deseado:
/map/1.0.0/cd/base/4/23/82,200
/map/1.0.0/cd/base/2/48/154,200
/map/1.0.0/cd/base/3/45/433,200
Respuesta1
Si desea preservar la esencia de su comando awk, simplemente puede sub
eliminar la parte final no deseada de$1
awk '{sub(/\.png.*$/,"",$1); print $1","$2}' file
o (quizás más torpemente)
awk '{sub(/\.png.*$/,"",$1)}1' OFS=, file
Respuesta2
Puedes probar la siguiente solución awk:
awk 'BEGIN{FS=".png| "} {print $1,$NF}' kk.txt |tr ' ' ','
usando separador de campo múltiple.