Repository files navigation

ProcessCsv

Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

by Andreas Aakvik Gogstad, 2023, https://github.com/snjo/processcsv

Uses CsvHelper by Josh Close, https://joshclose.github.io/CsvHelper/

ProcessCsv can be used either by running it with command line parameters, or if no parameters are used, through a menu based system.

Command line parameter mode

Command line arguments

Processes a CSV file to remove unwanted columns, change delimiter, encoding or inspect contents
PROCESSCSV /l file [/s file] [/cs columns] [/ie encoding] [/oe encoding]
[/id delimiter] [/od delimiter] [/ex [number]] [/hd] [/q] [/p]
PROCESSCSV sourcefile targetfile [other arguments]
PROCESSCSV [No arguments] : Starts the program in menu based mode
ARGUMENT ALIAS FUNCTION
/help /? Displays this help page
/load /l File name to load from (Source)
/save /s File name to save to (Target)
Example: /l a.csv /s b.csv
/inencoding /ie Encoding or codepage of the source file
Skip to autodetect (Program counts , ; and TAB)
/outencoding /oe Encoding or codepage of the target file
Example encodings: UTF-8, UTF-8-BOM, LATIN1, ASCII, 865
Example: /ie Latin1 /oe UTF8
/columnselect /cs Select columns in the CSV to keep in the target file.
If unspecified, all columns will be output.
Columns set to -1 will be empty.
Example: /cs 0,-1,-1,21,8
/columncount /cc Manually specify the number of columns (fields) in the file.
Missing columns (fields) on a line will be added as empty values.
If not used, column count is guessed by the number of delimiters found on line 0 and 1
Example: /cc 4
/example /ex Lists a number of lines from the start of the file. (Default is 5 lines)
Example: /ex 10
/indelimiter /id The delimiter type used in the source file.
/outdelimiter /od The delimiter type used for the target file.
Tab, comma and semicolon can be referenced by name.
Example: /id ; /od ,
Example: /id tab /od comma
/showheaders /hd Lists all headers (column names) on the first line of the source file.
Use this to find the column numbers to use for the columnselect argument.
/quiet /q No text output (except for Help, headers and example lines). Use exit codes to verify result.
/pause /p Wait for keypress before exiting
/ignorebaddata /ibd Proceed despite bad data, such as quotes that are not closed out or missing fields
/ignoremissing /imf Proceed despite missing fields. Missing fields on a line will be added as empty values
/fixbaddata /fbd Fix lines with bad data. Guesses based on number of delimiter characters present.
If delimiter count is wrong, columns may be misaligned. Also removes quotes from the fields.
/newheaders /nwh Replace or add headers (column names) with a custom set of names.
Enclose text in quotes if names contain spaces.
If no names are listed, generic names are used.
Example: /nwh Name,Email,Phone
Example: /nwh "Name,Email Address,Phone Number"
Example: /nwh > This will generate Column 1, Column 2, Column 3 etc.
/noheaders /noh Used with /newheaders if the first line is not a list of column names, but data.
Inserts a new row at the start of the file with new header names from /newheader
/agewarning /aw Warn if source file is older than n number of days
Example: /aw 10
/ageerror /ae Error if source file is older than n number of days. Exits the program!
Example: /ae 10

Exit Codes:

0 : Success
1 : InfoShown
2 : SourceFileNotFound
3 : SourceFileParseError
4 : TargetFileError
5 : InvalidEncoding
6 : InvalidFields
7 : InvalidArgument
8 : TargetUnauthorized
9 : TargetDirectoryNotFound
10 : UnkownError
11 : Aborted
12 : SourceFileTooOld

Menu mode

Menu based operation sets the flags for you, then runs the process to show the result, or save to a file.

Use number keys to navigate the menu, press Q or Esc to step back to the previous menu screen.

If there are more than 9 menu options, each selection must be confirmed by pressing Enter (Readline instead of ReadKey).

The CMD Console should be set to display 30 or more lines to see the whole menu.

image

About

Command line utility. Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

ProcessCsv

Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

by Andreas Aakvik Gogstad, 2023, https://github.com/snjo/processcsv

Uses CsvHelper by Josh Close, https://joshclose.github.io/CsvHelper/

ProcessCsv can be used either by running it with command line parameters, or if no parameters are used, through a menu based system.

Command line parameter mode

Command line arguments

Processes a CSV file to remove unwanted columns, change delimiter, encoding or inspect contents
PROCESSCSV /l file [/s file] [/cs columns] [/ie encoding] [/oe encoding]
[/id delimiter] [/od delimiter] [/ex [number]] [/hd] [/q] [/p]
PROCESSCSV sourcefile targetfile [other arguments]
PROCESSCSV [No arguments] : Starts the program in menu based mode
ARGUMENT ALIAS FUNCTION
/help /? Displays this help page
/load /l File name to load from (Source)
/save /s File name to save to (Target)
Example: /l a.csv /s b.csv
/inencoding /ie Encoding or codepage of the source file
Skip to autodetect (Program counts , ; and TAB)
/outencoding /oe Encoding or codepage of the target file
Example encodings: UTF-8, UTF-8-BOM, LATIN1, ASCII, 865
Example: /ie Latin1 /oe UTF8
/columnselect /cs Select columns in the CSV to keep in the target file.
If unspecified, all columns will be output.
Columns set to -1 will be empty.
Example: /cs 0,-1,-1,21,8
/columncount /cc Manually specify the number of columns (fields) in the file.
Missing columns (fields) on a line will be added as empty values.
If not used, column count is guessed by the number of delimiters found on line 0 and 1
Example: /cc 4
/example /ex Lists a number of lines from the start of the file. (Default is 5 lines)
Example: /ex 10
/indelimiter /id The delimiter type used in the source file.
/outdelimiter /od The delimiter type used for the target file.
Tab, comma and semicolon can be referenced by name.
Example: /id ; /od ,
Example: /id tab /od comma
/showheaders /hd Lists all headers (column names) on the first line of the source file.
Use this to find the column numbers to use for the columnselect argument.
/quiet /q No text output (except for Help, headers and example lines). Use exit codes to verify result.
/pause /p Wait for keypress before exiting
/ignorebaddata /ibd Proceed despite bad data, such as quotes that are not closed out or missing fields
/ignoremissing /imf Proceed despite missing fields. Missing fields on a line will be added as empty values
/fixbaddata /fbd Fix lines with bad data. Guesses based on number of delimiter characters present.
If delimiter count is wrong, columns may be misaligned. Also removes quotes from the fields.
/newheaders /nwh Replace or add headers (column names) with a custom set of names.
Enclose text in quotes if names contain spaces.
If no names are listed, generic names are used.
Example: /nwh Name,Email,Phone
Example: /nwh "Name,Email Address,Phone Number"
Example: /nwh > This will generate Column 1, Column 2, Column 3 etc.
/noheaders /noh Used with /newheaders if the first line is not a list of column names, but data.
Inserts a new row at the start of the file with new header names from /newheader
/agewarning /aw Warn if source file is older than n number of days
Example: /aw 10
/ageerror /ae Error if source file is older than n number of days. Exits the program!
Example: /ae 10

Exit Codes:

0 : Success
1 : InfoShown
2 : SourceFileNotFound
3 : SourceFileParseError
4 : TargetFileError
5 : InvalidEncoding
6 : InvalidFields
7 : InvalidArgument
8 : TargetUnauthorized
9 : TargetDirectoryNotFound
10 : UnkownError
11 : Aborted
12 : SourceFileTooOld

Menu mode

Menu based operation sets the flags for you, then runs the process to show the result, or save to a file.

Use number keys to navigate the menu, press Q or Esc to step back to the previous menu screen.

If there are more than 9 menu options, each selection must be confirmed by pressing Enter (Readline instead of ReadKey).

The CMD Console should be set to display 30 or more lines to see the whole menu.

image

About

Command line utility. Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ProcessCsv

Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

by Andreas Aakvik Gogstad, 2023, https://github.com/snjo/processcsv

Uses CsvHelper by Josh Close, https://joshclose.github.io/CsvHelper/

ProcessCsv can be used either by running it with command line parameters, or if no parameters are used, through a menu based system.

Command line parameter mode

Command line arguments

Processes a CSV file to remove unwanted columns, change delimiter, encoding or inspect contents
PROCESSCSV /l file [/s file] [/cs columns] [/ie encoding] [/oe encoding]
[/id delimiter] [/od delimiter] [/ex [number]] [/hd] [/q] [/p]
PROCESSCSV sourcefile targetfile [other arguments]
PROCESSCSV [No arguments] : Starts the program in menu based mode
ARGUMENT ALIAS FUNCTION
/help /? Displays this help page
/load /l File name to load from (Source)
/save /s File name to save to (Target)
Example: /l a.csv /s b.csv
/inencoding /ie Encoding or codepage of the source file
Skip to autodetect (Program counts , ; and TAB)
/outencoding /oe Encoding or codepage of the target file
Example encodings: UTF-8, UTF-8-BOM, LATIN1, ASCII, 865
Example: /ie Latin1 /oe UTF8
/columnselect /cs Select columns in the CSV to keep in the target file.
If unspecified, all columns will be output.
Columns set to -1 will be empty.
Example: /cs 0,-1,-1,21,8
/columncount /cc Manually specify the number of columns (fields) in the file.
Missing columns (fields) on a line will be added as empty values.
If not used, column count is guessed by the number of delimiters found on line 0 and 1
Example: /cc 4
/example /ex Lists a number of lines from the start of the file. (Default is 5 lines)
Example: /ex 10
/indelimiter /id The delimiter type used in the source file.
/outdelimiter /od The delimiter type used for the target file.
Tab, comma and semicolon can be referenced by name.
Example: /id ; /od ,
Example: /id tab /od comma
/showheaders /hd Lists all headers (column names) on the first line of the source file.
Use this to find the column numbers to use for the columnselect argument.
/quiet /q No text output (except for Help, headers and example lines). Use exit codes to verify result.
/pause /p Wait for keypress before exiting
/ignorebaddata /ibd Proceed despite bad data, such as quotes that are not closed out or missing fields
/ignoremissing /imf Proceed despite missing fields. Missing fields on a line will be added as empty values
/fixbaddata /fbd Fix lines with bad data. Guesses based on number of delimiter characters present.
If delimiter count is wrong, columns may be misaligned. Also removes quotes from the fields.
/newheaders /nwh Replace or add headers (column names) with a custom set of names.
Enclose text in quotes if names contain spaces.
If no names are listed, generic names are used.
Example: /nwh Name,Email,Phone
Example: /nwh "Name,Email Address,Phone Number"
Example: /nwh > This will generate Column 1, Column 2, Column 3 etc.
/noheaders /noh Used with /newheaders if the first line is not a list of column names, but data.
Inserts a new row at the start of the file with new header names from /newheader
/agewarning /aw Warn if source file is older than n number of days
Example: /aw 10
/ageerror /ae Error if source file is older than n number of days. Exits the program!
Example: /ae 10

Exit Codes:

0 : Success
1 : InfoShown
2 : SourceFileNotFound
3 : SourceFileParseError
4 : TargetFileError
5 : InvalidEncoding
6 : InvalidFields
7 : InvalidArgument
8 : TargetUnauthorized
9 : TargetDirectoryNotFound
10 : UnkownError
11 : Aborted
12 : SourceFileTooOld

Menu mode

Menu based operation sets the flags for you, then runs the process to show the result, or save to a file.

Use number keys to navigate the menu, press Q or Esc to step back to the previous menu screen.

If there are more than 9 menu options, each selection must be confirmed by pressing Enter (Readline instead of ReadKey).

The CMD Console should be set to display 30 or more lines to see the whole menu.

image

About

Command line utility. Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ProcessCsv

Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

by Andreas Aakvik Gogstad, 2023, https://github.com/snjo/processcsv

Uses CsvHelper by Josh Close, https://joshclose.github.io/CsvHelper/

ProcessCsv can be used either by running it with command line parameters, or if no parameters are used, through a menu based system.

Command line parameter mode

Command line arguments

Processes a CSV file to remove unwanted columns, change delimiter, encoding or inspect contents
PROCESSCSV /l file [/s file] [/cs columns] [/ie encoding] [/oe encoding]
[/id delimiter] [/od delimiter] [/ex [number]] [/hd] [/q] [/p]
PROCESSCSV sourcefile targetfile [other arguments]
PROCESSCSV [No arguments] : Starts the program in menu based mode
ARGUMENT ALIAS FUNCTION
/help /? Displays this help page
/load /l File name to load from (Source)
/save /s File name to save to (Target)
Example: /l a.csv /s b.csv
/inencoding /ie Encoding or codepage of the source file
Skip to autodetect (Program counts , ; and TAB)
/outencoding /oe Encoding or codepage of the target file
Example encodings: UTF-8, UTF-8-BOM, LATIN1, ASCII, 865
Example: /ie Latin1 /oe UTF8
/columnselect /cs Select columns in the CSV to keep in the target file.
If unspecified, all columns will be output.
Columns set to -1 will be empty.
Example: /cs 0,-1,-1,21,8
/columncount /cc Manually specify the number of columns (fields) in the file.
Missing columns (fields) on a line will be added as empty values.
If not used, column count is guessed by the number of delimiters found on line 0 and 1
Example: /cc 4
/example /ex Lists a number of lines from the start of the file. (Default is 5 lines)
Example: /ex 10
/indelimiter /id The delimiter type used in the source file.
/outdelimiter /od The delimiter type used for the target file.
Tab, comma and semicolon can be referenced by name.
Example: /id ; /od ,
Example: /id tab /od comma
/showheaders /hd Lists all headers (column names) on the first line of the source file.
Use this to find the column numbers to use for the columnselect argument.
/quiet /q No text output (except for Help, headers and example lines). Use exit codes to verify result.
/pause /p Wait for keypress before exiting
/ignorebaddata /ibd Proceed despite bad data, such as quotes that are not closed out or missing fields
/ignoremissing /imf Proceed despite missing fields. Missing fields on a line will be added as empty values
/fixbaddata /fbd Fix lines with bad data. Guesses based on number of delimiter characters present.
If delimiter count is wrong, columns may be misaligned. Also removes quotes from the fields.
/newheaders /nwh Replace or add headers (column names) with a custom set of names.
Enclose text in quotes if names contain spaces.
If no names are listed, generic names are used.
Example: /nwh Name,Email,Phone
Example: /nwh "Name,Email Address,Phone Number"
Example: /nwh > This will generate Column 1, Column 2, Column 3 etc.
/noheaders /noh Used with /newheaders if the first line is not a list of column names, but data.
Inserts a new row at the start of the file with new header names from /newheader
/agewarning /aw Warn if source file is older than n number of days
Example: /aw 10
/ageerror /ae Error if source file is older than n number of days. Exits the program!
Example: /ae 10

Exit Codes:

0 : Success
1 : InfoShown
2 : SourceFileNotFound
3 : SourceFileParseError
4 : TargetFileError
5 : InvalidEncoding
6 : InvalidFields
7 : InvalidArgument
8 : TargetUnauthorized
9 : TargetDirectoryNotFound
10 : UnkownError
11 : Aborted
12 : SourceFileTooOld

Menu mode

Menu based operation sets the flags for you, then runs the process to show the result, or save to a file.

Use number keys to navigate the menu, press Q or Esc to step back to the previous menu screen.

If there are more than 9 menu options, each selection must be confirmed by pressing Enter (Readline instead of ReadKey).

The CMD Console should be set to display 30 or more lines to see the whole menu.

image

About

Command line utility. Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

ProcessCsv

Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

by Andreas Aakvik Gogstad, 2023, https://github.com/snjo/processcsv

Uses CsvHelper by Josh Close, https://joshclose.github.io/CsvHelper/

ProcessCsv can be used either by running it with command line parameters, or if no parameters are used, through a menu based system.

Command line parameter mode

Command line arguments

Processes a CSV file to remove unwanted columns, change delimiter, encoding or inspect contents
PROCESSCSV /l file [/s file] [/cs columns] [/ie encoding] [/oe encoding]
[/id delimiter] [/od delimiter] [/ex [number]] [/hd] [/q] [/p]
PROCESSCSV sourcefile targetfile [other arguments]
PROCESSCSV [No arguments] : Starts the program in menu based mode
ARGUMENT ALIAS FUNCTION
/help /? Displays this help page
/load /l File name to load from (Source)
/save /s File name to save to (Target)
Example: /l a.csv /s b.csv
/inencoding /ie Encoding or codepage of the source file
Skip to autodetect (Program counts , ; and TAB)
/outencoding /oe Encoding or codepage of the target file
Example encodings: UTF-8, UTF-8-BOM, LATIN1, ASCII, 865
Example: /ie Latin1 /oe UTF8
/columnselect /cs Select columns in the CSV to keep in the target file.
If unspecified, all columns will be output.
Columns set to -1 will be empty.
Example: /cs 0,-1,-1,21,8
/columncount /cc Manually specify the number of columns (fields) in the file.
Missing columns (fields) on a line will be added as empty values.
If not used, column count is guessed by the number of delimiters found on line 0 and 1
Example: /cc 4
/example /ex Lists a number of lines from the start of the file. (Default is 5 lines)
Example: /ex 10
/indelimiter /id The delimiter type used in the source file.
/outdelimiter /od The delimiter type used for the target file.
Tab, comma and semicolon can be referenced by name.
Example: /id ; /od ,
Example: /id tab /od comma
/showheaders /hd Lists all headers (column names) on the first line of the source file.
Use this to find the column numbers to use for the columnselect argument.
/quiet /q No text output (except for Help, headers and example lines). Use exit codes to verify result.
/pause /p Wait for keypress before exiting
/ignorebaddata /ibd Proceed despite bad data, such as quotes that are not closed out or missing fields
/ignoremissing /imf Proceed despite missing fields. Missing fields on a line will be added as empty values
/fixbaddata /fbd Fix lines with bad data. Guesses based on number of delimiter characters present.
If delimiter count is wrong, columns may be misaligned. Also removes quotes from the fields.
/newheaders /nwh Replace or add headers (column names) with a custom set of names.
Enclose text in quotes if names contain spaces.
If no names are listed, generic names are used.
Example: /nwh Name,Email,Phone
Example: /nwh "Name,Email Address,Phone Number"
Example: /nwh > This will generate Column 1, Column 2, Column 3 etc.
/noheaders /noh Used with /newheaders if the first line is not a list of column names, but data.
Inserts a new row at the start of the file with new header names from /newheader
/agewarning /aw Warn if source file is older than n number of days
Example: /aw 10
/ageerror /ae Error if source file is older than n number of days. Exits the program!
Example: /ae 10

Exit Codes:

0 : Success
1 : InfoShown
2 : SourceFileNotFound
3 : SourceFileParseError
4 : TargetFileError
5 : InvalidEncoding
6 : InvalidFields
7 : InvalidArgument
8 : TargetUnauthorized
9 : TargetDirectoryNotFound
10 : UnkownError
11 : Aborted
12 : SourceFileTooOld

Menu mode

Menu based operation sets the flags for you, then runs the process to show the result, or save to a file.

Use number keys to navigate the menu, press Q or Esc to step back to the previous menu screen.

If there are more than 9 menu options, each selection must be confirmed by pressing Enter (Readline instead of ReadKey).

The CMD Console should be set to display 30 or more lines to see the whole menu.

image

About

Command line utility. Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ProcessCsv

Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

by Andreas Aakvik Gogstad, 2023, https://github.com/snjo/processcsv

Uses CsvHelper by Josh Close, https://joshclose.github.io/CsvHelper/

ProcessCsv can be used either by running it with command line parameters, or if no parameters are used, through a menu based system.

Command line parameter mode

Command line arguments

Processes a CSV file to remove unwanted columns, change delimiter, encoding or inspect contents
PROCESSCSV /l file [/s file] [/cs columns] [/ie encoding] [/oe encoding]
[/id delimiter] [/od delimiter] [/ex [number]] [/hd] [/q] [/p]
PROCESSCSV sourcefile targetfile [other arguments]
PROCESSCSV [No arguments] : Starts the program in menu based mode
ARGUMENT ALIAS FUNCTION
/help /? Displays this help page
/load /l File name to load from (Source)
/save /s File name to save to (Target)
Example: /l a.csv /s b.csv
/inencoding /ie Encoding or codepage of the source file
Skip to autodetect (Program counts , ; and TAB)
/outencoding /oe Encoding or codepage of the target file
Example encodings: UTF-8, UTF-8-BOM, LATIN1, ASCII, 865
Example: /ie Latin1 /oe UTF8
/columnselect /cs Select columns in the CSV to keep in the target file.
If unspecified, all columns will be output.
Columns set to -1 will be empty.
Example: /cs 0,-1,-1,21,8
/columncount /cc Manually specify the number of columns (fields) in the file.
Missing columns (fields) on a line will be added as empty values.
If not used, column count is guessed by the number of delimiters found on line 0 and 1
Example: /cc 4
/example /ex Lists a number of lines from the start of the file. (Default is 5 lines)
Example: /ex 10
/indelimiter /id The delimiter type used in the source file.
/outdelimiter /od The delimiter type used for the target file.
Tab, comma and semicolon can be referenced by name.
Example: /id ; /od ,
Example: /id tab /od comma
/showheaders /hd Lists all headers (column names) on the first line of the source file.
Use this to find the column numbers to use for the columnselect argument.
/quiet /q No text output (except for Help, headers and example lines). Use exit codes to verify result.
/pause /p Wait for keypress before exiting
/ignorebaddata /ibd Proceed despite bad data, such as quotes that are not closed out or missing fields
/ignoremissing /imf Proceed despite missing fields. Missing fields on a line will be added as empty values
/fixbaddata /fbd Fix lines with bad data. Guesses based on number of delimiter characters present.
If delimiter count is wrong, columns may be misaligned. Also removes quotes from the fields.
/newheaders /nwh Replace or add headers (column names) with a custom set of names.
Enclose text in quotes if names contain spaces.
If no names are listed, generic names are used.
Example: /nwh Name,Email,Phone
Example: /nwh "Name,Email Address,Phone Number"
Example: /nwh > This will generate Column 1, Column 2, Column 3 etc.
/noheaders /noh Used with /newheaders if the first line is not a list of column names, but data.
Inserts a new row at the start of the file with new header names from /newheader
/agewarning /aw Warn if source file is older than n number of days
Example: /aw 10
/ageerror /ae Error if source file is older than n number of days. Exits the program!
Example: /ae 10

Exit Codes:

0 : Success
1 : InfoShown
2 : SourceFileNotFound
3 : SourceFileParseError
4 : TargetFileError
5 : InvalidEncoding
6 : InvalidFields
7 : InvalidArgument
8 : TargetUnauthorized
9 : TargetDirectoryNotFound
10 : UnkownError
11 : Aborted
12 : SourceFileTooOld

Menu mode

Menu based operation sets the flags for you, then runs the process to show the result, or save to a file.

Use number keys to navigate the menu, press Q or Esc to step back to the previous menu screen.

If there are more than 9 menu options, each selection must be confirmed by pressing Enter (Readline instead of ReadKey).

The CMD Console should be set to display 30 or more lines to see the whole menu.

image

About

Command line utility. Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ProcessCsv

Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

by Andreas Aakvik Gogstad, 2023, https://github.com/snjo/processcsv

Uses CsvHelper by Josh Close, https://joshclose.github.io/CsvHelper/

ProcessCsv can be used either by running it with command line parameters, or if no parameters are used, through a menu based system.

Command line parameter mode

Command line arguments

Processes a CSV file to remove unwanted columns, change delimiter, encoding or inspect contents
PROCESSCSV /l file [/s file] [/cs columns] [/ie encoding] [/oe encoding]
[/id delimiter] [/od delimiter] [/ex [number]] [/hd] [/q] [/p]
PROCESSCSV sourcefile targetfile [other arguments]
PROCESSCSV [No arguments] : Starts the program in menu based mode
ARGUMENT ALIAS FUNCTION
/help /? Displays this help page
/load /l File name to load from (Source)
/save /s File name to save to (Target)
Example: /l a.csv /s b.csv
/inencoding /ie Encoding or codepage of the source file
Skip to autodetect (Program counts , ; and TAB)
/outencoding /oe Encoding or codepage of the target file
Example encodings: UTF-8, UTF-8-BOM, LATIN1, ASCII, 865
Example: /ie Latin1 /oe UTF8
/columnselect /cs Select columns in the CSV to keep in the target file.
If unspecified, all columns will be output.
Columns set to -1 will be empty.
Example: /cs 0,-1,-1,21,8
/columncount /cc Manually specify the number of columns (fields) in the file.
Missing columns (fields) on a line will be added as empty values.
If not used, column count is guessed by the number of delimiters found on line 0 and 1
Example: /cc 4
/example /ex Lists a number of lines from the start of the file. (Default is 5 lines)
Example: /ex 10
/indelimiter /id The delimiter type used in the source file.
/outdelimiter /od The delimiter type used for the target file.
Tab, comma and semicolon can be referenced by name.
Example: /id ; /od ,
Example: /id tab /od comma
/showheaders /hd Lists all headers (column names) on the first line of the source file.
Use this to find the column numbers to use for the columnselect argument.
/quiet /q No text output (except for Help, headers and example lines). Use exit codes to verify result.
/pause /p Wait for keypress before exiting
/ignorebaddata /ibd Proceed despite bad data, such as quotes that are not closed out or missing fields
/ignoremissing /imf Proceed despite missing fields. Missing fields on a line will be added as empty values
/fixbaddata /fbd Fix lines with bad data. Guesses based on number of delimiter characters present.
If delimiter count is wrong, columns may be misaligned. Also removes quotes from the fields.
/newheaders /nwh Replace or add headers (column names) with a custom set of names.
Enclose text in quotes if names contain spaces.
If no names are listed, generic names are used.
Example: /nwh Name,Email,Phone
Example: /nwh "Name,Email Address,Phone Number"
Example: /nwh > This will generate Column 1, Column 2, Column 3 etc.
/noheaders /noh Used with /newheaders if the first line is not a list of column names, but data.
Inserts a new row at the start of the file with new header names from /newheader
/agewarning /aw Warn if source file is older than n number of days
Example: /aw 10
/ageerror /ae Error if source file is older than n number of days. Exits the program!
Example: /ae 10

Exit Codes:

0 : Success
1 : InfoShown
2 : SourceFileNotFound
3 : SourceFileParseError
4 : TargetFileError
5 : InvalidEncoding
6 : InvalidFields
7 : InvalidArgument
8 : TargetUnauthorized
9 : TargetDirectoryNotFound
10 : UnkownError
11 : Aborted
12 : SourceFileTooOld

Menu mode

Menu based operation sets the flags for you, then runs the process to show the result, or save to a file.

Use number keys to navigate the menu, press Q or Esc to step back to the previous menu screen.

If there are more than 9 menu options, each selection must be confirmed by pressing Enter (Readline instead of ReadKey).

The CMD Console should be set to display 30 or more lines to see the whole menu.

image

About

Command line utility. Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

ProcessCsv

Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

by Andreas Aakvik Gogstad, 2023, https://github.com/snjo/processcsv

Uses CsvHelper by Josh Close, https://joshclose.github.io/CsvHelper/

ProcessCsv can be used either by running it with command line parameters, or if no parameters are used, through a menu based system.

Command line parameter mode

Command line arguments

Processes a CSV file to remove unwanted columns, change delimiter, encoding or inspect contents
PROCESSCSV /l file [/s file] [/cs columns] [/ie encoding] [/oe encoding]
[/id delimiter] [/od delimiter] [/ex [number]] [/hd] [/q] [/p]
PROCESSCSV sourcefile targetfile [other arguments]
PROCESSCSV [No arguments] : Starts the program in menu based mode
ARGUMENT ALIAS FUNCTION
/help /? Displays this help page
/load /l File name to load from (Source)
/save /s File name to save to (Target)
Example: /l a.csv /s b.csv
/inencoding /ie Encoding or codepage of the source file
Skip to autodetect (Program counts , ; and TAB)
/outencoding /oe Encoding or codepage of the target file
Example encodings: UTF-8, UTF-8-BOM, LATIN1, ASCII, 865
Example: /ie Latin1 /oe UTF8
/columnselect /cs Select columns in the CSV to keep in the target file.
If unspecified, all columns will be output.
Columns set to -1 will be empty.
Example: /cs 0,-1,-1,21,8
/columncount /cc Manually specify the number of columns (fields) in the file.
Missing columns (fields) on a line will be added as empty values.
If not used, column count is guessed by the number of delimiters found on line 0 and 1
Example: /cc 4
/example /ex Lists a number of lines from the start of the file. (Default is 5 lines)
Example: /ex 10
/indelimiter /id The delimiter type used in the source file.
/outdelimiter /od The delimiter type used for the target file.
Tab, comma and semicolon can be referenced by name.
Example: /id ; /od ,
Example: /id tab /od comma
/showheaders /hd Lists all headers (column names) on the first line of the source file.
Use this to find the column numbers to use for the columnselect argument.
/quiet /q No text output (except for Help, headers and example lines). Use exit codes to verify result.
/pause /p Wait for keypress before exiting
/ignorebaddata /ibd Proceed despite bad data, such as quotes that are not closed out or missing fields
/ignoremissing /imf Proceed despite missing fields. Missing fields on a line will be added as empty values
/fixbaddata /fbd Fix lines with bad data. Guesses based on number of delimiter characters present.
If delimiter count is wrong, columns may be misaligned. Also removes quotes from the fields.
/newheaders /nwh Replace or add headers (column names) with a custom set of names.
Enclose text in quotes if names contain spaces.
If no names are listed, generic names are used.
Example: /nwh Name,Email,Phone
Example: /nwh "Name,Email Address,Phone Number"
Example: /nwh > This will generate Column 1, Column 2, Column 3 etc.
/noheaders /noh Used with /newheaders if the first line is not a list of column names, but data.
Inserts a new row at the start of the file with new header names from /newheader
/agewarning /aw Warn if source file is older than n number of days
Example: /aw 10
/ageerror /ae Error if source file is older than n number of days. Exits the program!
Example: /ae 10

Exit Codes:

0 : Success
1 : InfoShown
2 : SourceFileNotFound
3 : SourceFileParseError
4 : TargetFileError
5 : InvalidEncoding
6 : InvalidFields
7 : InvalidArgument
8 : TargetUnauthorized
9 : TargetDirectoryNotFound
10 : UnkownError
11 : Aborted
12 : SourceFileTooOld

Menu mode

Menu based operation sets the flags for you, then runs the process to show the result, or save to a file.

Use number keys to navigate the menu, press Q or Esc to step back to the previous menu screen.

If there are more than 9 menu options, each selection must be confirmed by pressing Enter (Readline instead of ReadKey).

The CMD Console should be set to display 30 or more lines to see the whole menu.

image

About

Command line utility. Processes a CSV file to remove unwanted fields, change delimiter, encoding or inspect contents

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages