# xan transform ```txt The transform command can be used to edit a selection of columns for each row of a CSV file using a custom expression. For instance, given the following CSV file: name,surname john,davis mary,sue The following command (notice how `_` is used as a reference to the currently edited column): $ xan transform surname 'upper(_)' Will produce the following result: name,surname john,DAVIS mary,SUE When using unary functions, the above command can be written even shorter: $ xan transform surname upper The above example work on a single column but the command is perfectly able to transform multiple columns at once using a selection: $ xan transform name,surname,fullname upper The expression can optionally be read from a file using the -f/--evaluate-file flag: $ xan transform name -f expr.moonblade file.csv > result.csv For a quick review of the capabilities of the expression language, check out the `xan help cheatsheet` command. For a list of available functions, use `xan help functions`. Usage: xan transform [options] [] xan transform --help transform options: -f, --evaluate-file Read evaluation expression from a file instead. -r, --rename New name for the transformed column. -p, --parallel Whether to use parallelization to speed up computations. Will automatically select a suitable number of threads to use based on your number of cores. Use -t, --threads if you want to indicate the number of threads yourself. -t, --threads Parellize computations using this many threads. Use -p, --parallel if you want the number of threads to be automatically chosen instead. Common options: -h, --help Display this message -o, --output Write output to instead of stdout. -n, --no-headers When set, the first row will not be evaled as headers. -d, --delimiter The field delimiter for reading CSV data. Must be a single character. ```