Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ysf/anewer

anewer appends lines from stdin to a file if they don't already exist in the file. This is a rust version of https://github.com/tomnomnom/anew
https://github.com/ysf/anewer

bugbounty cli rust stdin stdout tool uniq

Last synced: 21 days ago
JSON representation

anewer appends lines from stdin to a file if they don't already exist in the file. This is a rust version of https://github.com/tomnomnom/anew

Awesome Lists containing this project

README

        

# anewer [![crates.io][crates-img]][crates] [![@ysfr][twitter-img]][twitter]
anewer appends lines from stdin to a file if they don't already exist in the file. You could also use it as `uniq` without `sort`. This is a rust version of [tomnomnom/anew](https://github.com/tomnomnom/anew). It makes use of [tkaitchuck/aHash](https://github.com/tkaitchuck/aHash) to cut down runtime to ~50%. Since only hashed lines are held in memory, it cuts down memory usage for inputs with long lines. Which is similar how [`huniq`](https://crates.io/crates/huniq) works.

[twitter-img]: https://img.shields.io/badge/[email protected]
[twitter]: https://twitter.com/ysfr
[crates-img]: https://img.shields.io/crates/v/anewer.svg
[crates]: https://crates.io/crates/anewer

## Usage

```
$ anewer -h
USAGE:
anewer [FLAGS] [filename]

FLAGS:
-n, --dry-run Dry run, will leave the file as it is
-h, --help Prints help information
-v, --invert Invert the sense of matching
-q, --quiet Quiet, won't print to stdout
-V, --version Prints version information

ARGS:

```

## Installation

```
cargo install anewer
```

#### Add unknown elements of newthings.txt to things.txt
```
$ cat things.txt
Zero
One
Two

$ cat newthings.txt
One
Two
Three
Four

$ cat newthings.txt | anewer things.txt
Three
Four

$ cat things.txt
Zero
One
Two
Three
Four
```

#### Or use it as simple uniq without sort
```
$ cat list.txt
One
One
Two
Two
Three
Four
Three
Four

$ cat list.txt | anewer
One
Two
Three
Four
```

# License
GPLv3+