prs is a utility that allows you to use Python list comprehensions in shell commands.
Project description
prs
===
prs is a small utility that lets you pipe things to Python and process them in a list comprehension.
If you've ever wished you could manipulate items in your shell with a Python list comprehension, prs is for you.
Installation
------------
Just `pip install prs`.
Usage
-----
prs is simple. You pipe stuff into it from the shell, it exposes whatever is piped as a list called `i` (without final
newlines) to a script, and expects the script to return either a string or an iterable to a variable called `o`. That
variable is then printed to stdout, so you can pipe it to `sh` for execution.
```bash
$ ls -1
LICENSE
prs/
README.md
setup.cfg
setup.py
$ ls -1 | prs "o = [l.lower() for l in i]"
license
prs
readme.md
setup.cfg
setup.py
```
Multiple lines can be separated by a semicolon.
Various libraries are already imported (but feel free to import your own):
* os
* sys
* pathlib.Path
Examples
--------
Append `.bak` to all files in the current directory:
```bash
$ ls -1 | prs "o = ['mv {} {}.bak'.format(l, l) for l in i if Path(l).is_file()]"
mv LICENSE LICENSE.bak
mv README.md README.md.bak
mv setup.cfg setup.cfg.bak
mv setup.py setup.py.bak
```
Concatenate all entries into one:
```bash
02:28:39 $ ls -1 | prs "o = 'touch ' + ' '.join(i)"
touch LICENSE prs README.md setup.cfg setup.py
```
Completely ignore all input:
```bash
02:29:35 $ ls -1 | prs "o = 'hi'"
hi
```
===
prs is a small utility that lets you pipe things to Python and process them in a list comprehension.
If you've ever wished you could manipulate items in your shell with a Python list comprehension, prs is for you.
Installation
------------
Just `pip install prs`.
Usage
-----
prs is simple. You pipe stuff into it from the shell, it exposes whatever is piped as a list called `i` (without final
newlines) to a script, and expects the script to return either a string or an iterable to a variable called `o`. That
variable is then printed to stdout, so you can pipe it to `sh` for execution.
```bash
$ ls -1
LICENSE
prs/
README.md
setup.cfg
setup.py
$ ls -1 | prs "o = [l.lower() for l in i]"
license
prs
readme.md
setup.cfg
setup.py
```
Multiple lines can be separated by a semicolon.
Various libraries are already imported (but feel free to import your own):
* os
* sys
* pathlib.Path
Examples
--------
Append `.bak` to all files in the current directory:
```bash
$ ls -1 | prs "o = ['mv {} {}.bak'.format(l, l) for l in i if Path(l).is_file()]"
mv LICENSE LICENSE.bak
mv README.md README.md.bak
mv setup.cfg setup.cfg.bak
mv setup.py setup.py.bak
```
Concatenate all entries into one:
```bash
02:28:39 $ ls -1 | prs "o = 'touch ' + ' '.join(i)"
touch LICENSE prs README.md setup.cfg setup.py
```
Completely ignore all input:
```bash
02:29:35 $ ls -1 | prs "o = 'hi'"
hi
```
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
prs-0.0.3.tar.gz
(2.8 kB
view details)
Built Distributions
prs-0.0.3-py3-none-any.whl
(3.0 kB
view details)
prs-0.0.3-py2-none-any.whl
(4.6 kB
view details)
File details
Details for the file prs-0.0.3.tar.gz
.
File metadata
- Download URL: prs-0.0.3.tar.gz
- Upload date:
- Size: 2.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef40a752a786b142a5038535fba72d97ffb64fb22d93c67ab7cc026aa06f6114 |
|
MD5 | 1a8421317f947266d701893565319117 |
|
BLAKE2b-256 | ee88f611a4dc2bab046553f583a0650d7cea2a670f7fe3bd253f1fee62d96c1e |
File details
Details for the file prs-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: prs-0.0.3-py3-none-any.whl
- Upload date:
- Size: 3.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2530308d0cc21cfcc6c8e196018e6b9605f34d66215e4689f126a0e8d896c412 |
|
MD5 | 903662a8aa5c737b0c5c4f09e4ea485e |
|
BLAKE2b-256 | 82ea196c80b565ee690bcc1b3bae66b47425ab5bc94a94f3a042cf694bcdcd17 |
File details
Details for the file prs-0.0.3-py2-none-any.whl
.
File metadata
- Download URL: prs-0.0.3-py2-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 152ad098653d09f4f171d4f427040980c7a737b400466163d93bd0d40fd7e65b |
|
MD5 | 99dbb822c41f86eb92219ebbedfd6ca1 |
|
BLAKE2b-256 | 8673b686499ab723c53199ab5ceec5cf63a81785522a91fb9fd6e27a159e1876 |