| Server IP : 127.0.1.1 / Your IP : 216.73.216.152 Web Server : Apache/2.4.52 (Ubuntu) System : Linux bahcrestlinepropertiesllc 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/augeas/lenses/dist/ |
Upload File : |
(*
Module: CSV
Generic CSV lens collection
Author: Raphael Pinson <raphael.pinson@camptocamp.com>
About: Reference
https://tools.ietf.org/html/rfc4180
About: License
This file is licenced under the LGPL v2+, like the rest of Augeas.
About: Lens Usage
To be documented
About: Configuration files
About: Examples
The <Test_CSV> file contains various examples and tests.
Caveats:
No support for files without an ending CRLF
*)
module CSV =
(* View: eol *)
let eol = Util.del_str "\n"
(* View: comment *)
let comment = Util.comment
| [ del /#[ \t]*\r?\n/ "#\n" ]
(* View: entry
An entry of fields, quoted or not *)
let entry (sep_str:string) =
let field = [ seq "field" . store (/[^"#\r\n]/ - sep_str)* ]
| [ seq "field" . store /("[^"#]*")+/ ]
in let sep = Util.del_str sep_str
in [ seq "entry" . counter "field" . Build.opt_list field sep . eol ]
(* View: lns
The generic lens, taking the separator as a parameter *)
let lns_generic (sep:string) = (comment | entry sep)*
(* View: lns
The comma-separated value lens *)
let lns = lns_generic ","
(* View: lns_semicol
A semicolon-separated value lens *)
let lns_semicol = lns_generic ";"