2011-01-14 9 views
8

Quiero escribir un script bash para automatizar el trazado de datos, usando una herramienta de trazado llamada xmgrace, pero quiero poder seleccionar qué columnas se trazan.¿Cómo marco algunas columnas usando xmgrace en la terminal?

Digamos que en mi archivo de datos tengo 3 columnas, con los datos xey en las columnas primera y tercera. ¿Cómo trazo x contra y cuando los datos están formateados de esta manera?

Intenté xmgrace -bxy [1:3] data pero eso no funcionó, dijo No block data read y trató la segunda columna como los valores y.

Respuesta

11

La sintaxis correcta para este tipo de problema es

xmgrace -block file -bxy 1:3 

Esto

  1. Leer el archivo como un archivo de bloque
  2. Trace la tercera columna en contra de la primera columna.
+0

Gracias, exactamente lo que estaba buscando – Eddy

+1

FYI, '-bxy 0: 3' parcelas de la tercera columna vs el número de fila. –

+0

Además, para los tipos de conjuntos que implican más de dos columnas, como xydy (x, y y barras de error), la sintaxis es 'xmgrace -block file -settype xydy -bxy 1: 2: 3'. –

2

Otra forma flexible de lograr el mismo objetivo es utilizar awk o cut:

awk '{print $1,$3}' data | xmgrace - 
cut -f1,3 data | xmgrace - 
Cuestiones relacionadas