Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/neekey/table-parser
A parser to parse table style output from shell
https://github.com/neekey/table-parser
Last synced: 5 days ago
JSON representation
A parser to parse table style output from shell
- Host: GitHub
- URL: https://github.com/neekey/table-parser
- Owner: neekey
- License: mit
- Created: 2013-01-25T07:00:18.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2024-03-19T16:24:48.000Z (8 months ago)
- Last Synced: 2024-09-19T07:42:31.830Z (about 2 months ago)
- Language: JavaScript
- Size: 130 KB
- Stars: 24
- Watchers: 2
- Forks: 13
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
TableParser [![Build Status](https://travis-ci.org/neekey/table-parser.svg)](https://travis-ci.org/neekey/table-parser)
================A parser to parse table style output from shell
## Install
```
npm install table-parser
```## Usage
We have some kind of log below as `test/ps.log`:
```bash
PID TTY TIME CMD
49692 ttys000 0:00.06 login -pfl neekey /bin/bash -c exec -la bash /bin/bash
49693 ttys000 0:00.06 -bash
54195 ttys000 0:00.09 node run...
56266 ttys005 0:00.06 login -pfl neekey /bin/bash -c exec -la bash /bin/bash
56269 ttys005 0:00.04 -bash
56463 ttys005 0:00.09 node test.js
56464 ttys005 0:00.01 ps -a
```Use table-parser to parse it into object:
```
var FS = require( 'fs' );
var Parser = require('table-parser');var linux_ps = './ps.log';
data = FS.readFileSync( linux_ps ).toString();
var parsedData = Parser.parse( data );console.log( parsedData );
```
Which will output:
```bash
[ { PID: [ '49692' ],
TTY: [ 'ttys000' ],
TIME: [ '0:00.06' ],
CMD:
[ 'login',
'-pfl',
'neekey',
'/bin/bash',
'-c',
'exec',
'-la',
'bash',
'/bin/bash' ] },
...{ PID: [ '56464' ],
TTY: [ 'ttys005' ],
TIME: [ '0:00.01' ],
CMD: [ 'ps', '-a' ] } ]
```## Double quotation marks
Normally, all the values will be transformed into array using `split( /\s+/ )`, but string wrapped with `"` will be treated as a continuous string.
For example, the CommandLine below:
```
"C:\Program Files\Internet Explorer\iexplore.exe" --name="Jack Neekey" --sex=male otherargs
```will be split into:
- `C:\Program Files\Internet Explorer\iexplore.exe` ( `"` will be removed, if `"` is at the beginning )
- `--name="Jack Neekey"` ( `"` is reserved )
- `--sex=male`
- `otherargs`