Hi all,

I’d like to share *lines* (github.com/mzattahri/lines), a library for 
reading, searching, and modifying text sources on a per-line basis. It uses 
iterators and simple abstractions that make it ergonomic to traverse, 
filter, rewrite, or transform text line by line.  

What it does:

(a) Iterate over all lines (forward or backward), or head/tail subsets.  

(b) Search/filter lines by content or custom predicates.

(c) Modify files in place (replace, remove, insert, truncate) or 
rewrite/transform them safely using a buffered rewrite or streaming.

(d) Maintain 1-based line numbering consistently (even when iterating 
backwards or slicing).

Why it might be useful:

(1) For tooling that deals with text files (config files, logs, code, 
data), where you often want to inspect or change specific lines without 
rewriting the whole file manually.

(2) For simple command-line utilities or small Go programs where full 
AST-based parsing is overkill, but line-based scanning or editing is 
sufficient.

(3) When you prefer a straightforward API with minimal dependencies and 
clear semantics around iteration and modification.

Thoughts and feedback are welcome.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/golang-nuts/b6b5a19e-94d6-4ebc-9d4f-c5a4ee327b22n%40googlegroups.com.

Reply via email to