The read_dsv command is used to convert delimiter separated values (DSV) data into CSV. DSV data is most commonly found in the UN*X world - for example, the /etc/passwd file is a DSV file. DSV data consists of values separated by a delimiter character - the vertical bar/pipe character is often used for this. For example, here's the data from the names.csv file in DSV format:
Charles|Dickens|M
Jane|Austen|F
Herman|Melville|M
Flann|O'Brien|M
George|Elliot|F
Virginia|Woolf|F
Oscar|Wilde|M
If a value needs to contain the delimiter, then it must be escaped using a backslash, as must any occurrences of the backslash itself. Here's a file that explains some C++ operators (this is operators.dsv):
asterisk|*|multiplication
equals|=|assignment
pipe|\||bitwise OR
backslash|\\|not a C++ operator
See also: write_dsv
Flag |
Req'd? |
Description |
-f fields |
No |
Specifies comma-separated list of fields to extract from the DSV data and the order they will appear in the CSV. If not specified, all fields in the DSV are extracted. If a non-existent field is specified, it is treated as though it does exist but is empty. |
-s sep |
No |
Specifies single character separator used in DSV file - the default is the pipe character. You can use this flag to allow reading of the popular tab-separated format by specifying a special tab character as the separator: |
-cm |
No |
Collapse multiple occurrences of a separator in the DSV input into a single instance. This is useful when reading space-separated files where the fields are separated by a variable number of spaces. |
-csv |
No |
Treat the contents of fields as if they were actually CSV data. If this is not specified, and the fields are double-quoted CSV data, the double-quotes will be escaped on output, resulting in extraneous quoting. |
The following example converts the operators.dsv file to CSV:
csvfix read_dsv data/operators.dsv
which produces:
"asterisk","*","multiplication"
"equals","=","assignment"
"pipe","|","bitwise OR"
"backslash","\","not a C++ operator"
Created with the Personal Edition of HelpNDoc: Easily create Web Help sites