prs是一个实用程序,允许您在shell命令中使用python列表理解。
prs的Python项目详细描述
减贫战略
prs是一个小实用程序,它允许您将内容管道化到python并在列表理解中处理它们。
如果您曾经希望能够使用python列表理解操作shell中的项,那么prs就是为您准备的。
安装
只要pip install prs
。
用法
减贫战略很简单。如果从shell向其传递内容,它将以名为i
(不带final
(换行符)返回给脚本,并期望脚本返回字符串或iterable返回给名为o
的变量。那个
然后变量被打印到stdout,这样您就可以将它通过管道发送到sh
来执行。
$ 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
多行可以用分号分隔。
已经导入了各种库(但可以自行导入):
- 操作系统
- 回复
- 系统
- pathlib.path
示例
注意:这里的示例实际上不会运行这些命令,它们只会显示这些命令,这样您就可以看到
快跑。要运行real命令,只需将| sh
附加到每个示例。
将.bak
附加到当前目录中的所有文件:
$ 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
将所有条目连接成一个:
02:28:39 $ ls -1 | prs "o = 'touch ' + ' '.join(i)" touch LICENSE prs README.md setup.cfg setup.py
完全忽略所有输入:
02:29:35 $ ls -1 | prs "o = 'hi'" hi
更改所有子目录中所有文件的扩展名:
$ prs 'o = ["mv %s %s" % (l, l.with_suffix(".2py")) for l in Path(".").glob("**/*.py")]'
mv setup.py setup.2py
mv build/lib/prs/cli.py build/lib/prs/cli.2py
mv build/lib/prs/__init__.py build/lib/prs/__init__.2py
mv prs/cli.py prs/cli.2py
mv prs/__init__.py prs/__init__.2py