gen_csv_data.awk (1263B)
#!/bin/awk
#A small utility I created when I need some quick and dirty SQL data to test out some queries and ideas
function isNegative() {
return rand();
}
function random(digits, pos_only) {
negative = isNegative();
if ((negative <= 0.5) && (pos_only == 0)) {
return (rand() * (10 ** digits)) * -1;
} else {
return (rand() * (10 ** digits));
}
}
function generateNumber(digits, pos_only, decimal, delimiter){
result = random(digits, pos_only);
if (decimal == 1) {
return int(result)""delimiter;
} else {
return result""delimiter;
}
}
BEGIN {
if (digits == ""){digits = 3;}
if (rows == ""){rows = 10;}
if (columns == ""){columns = 4;}
if (pos_only == ""){pos_only = 1;}
if (decimal == ""){decimal = 1;}
if (delimiter == ""){delimiter = ","}
DELIMITER_LEN=length(delimiter)+1;
for(i = 0; i < rows; i++) {
x="";
for(j = 0; j < columns; j++) {
if (j + 1 >= columns){
x = x""generateNumber(digits, pos_only, decimal, delimiter)"\n";
} else {
x = x""generateNumber(digits, pos_only, decimal, delimiter);
}
}
print substr(x, 1, length(x)-DELIMITER_LEN);
}
}