Solución:
prueba esto corto:
awk '!($3="")' file
Con GNU awk para la edición in situ, s/S
, y gensub()
borrar
1) el PRIMER campo:
awk -i inplace '{sub(/^S+s*/,"")}1' file
o
awk -i inplace '{$0=gensub(/^S+s*/,"",1)}1' file
2) el último campo:
awk -i inplace '{sub(/s*S+$/,"")}1' file
o
awk -i inplace '{$0=gensub(/s*S+$/,"",1)}1' file
3) la Nth campo donde N = 3:
awk -i inplace '{$0=gensub(/s*S+/,"",3)}1' file
Sin GNU awk necesitas un match()
+substr()
combo o múltiple sub()
s + vars para eliminar un campo intermedio. Consulte también Imprimir todas las columnas excepto las tres primeras.
Esto podría funcionar para usted (GNU sed):
sed -i -r 's/S+//3' file
Si desea eliminar el espacio en blanco antes del tercer campo:
sed -i -r 's/(s+)?S+//3' file
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)