抽象的
这篇简短的博客文章是关于使用 pypyp 和 uv 的 Linux 文本管道解决方案的介绍,它可以轻松地重用您所有有关 python 的知识和软件包,而无需学习 awk。我们专注于告诉读者为什么选择它而不是如何使用它。如果想了解更多使用方法,请访问pypyp主页和uv主页
为什么我不使用 awk ?
编写 Linux shell 脚本或命令时,awk、sed 和 grep 是处理文本的强大工具:您可以使用 grep 来查找类似 ls | 的内容。 grep myname,使用 sed 替换某些内容并使用 awk 作为图灵完备的编程语言来处理更复杂的情况。
grep 和 sed 都很好。他们只做一件事,而且做得很好。但 awk 不是。众所周知,awk 是一种文本编程语言,与 grep 和 sed 相比,学习如何使用它需要更多的时间。这就是问题所在,awk 是一个很好的文本处理工具,但不是一个好的编程语言。
与 Python、Ruby 和 Perl 相比,awk 不是通用编程语言,因此 awk 99% 的使用仅是在 linux shell 中处理文本,而这种便利性不值得您花费时间和认知负荷来学习新的编程语言,尤其是当你不是主修 shell 脚本时。
所以,生命短暂,如果你可以使用已经学过的编程语言,为什么还要学习另一种编程语言呢?
为什么我选择pypyp?
pypyp 是一个解决方案。这是一个简单的(少于 800 行代码)Python 脚本,可以帮助您使用单个命令 pyp 替换 awk 、 sed 和 grep ,并具备您有关 Python 的所有知识。这是一个简单的例子。
uname | pyp 'x.lower()' ls | uvx pypyp 're.match(r"\S+.c",x)' # use python regex
pypyp 解决了许多关于 python -c 的简单但重要的问题,它读取 stdin 到lines变量并将行分割到x变量,它还自动打印最后一个表达式。同时它导入了一些comman包,使python像perl和awk一样易于使用作为linux shell的文本处理语言。
为什么我也用uv?
uv 就像 python 的 Cargo 或 npm。将 pypyp 与 uvx(类似于 npx 或 pipx)一起使用非常简单,尤其是您需要 pypyp 的第三方包。例如,我想将 numpy 与 pypyp 一起使用,我可以简单地使用 uvx --with numpy 添加 numpy 包并使用 pyp 自动导入它。
uvx --with numpy pypyp 'numpy.random.randint(100)'
uv 还使安装 pypyp 变得更容易。安装 uv 后,您可以直接运行 uvx pypyp,uvx 将为您下载并运行它。
结论
我发现uvx pypyp是awk的一个很好的替代品,它可以重用你所有关于python的知识,而不会给你增加更多的负担。但我们也应该注意到,它目前还不是一个流行的解决方案,为了兼容性,最好不要与其他人共享您的命令或脚本。
以上是使用 pypyp 和 uv 的 Linux Shell 符合人体工程学的 Pyhon 文本管道解决方案的详细内容。更多信息请关注PHP中文网其他相关文章!

Tomergelistsinpython,YouCanusethe操作员,estextMethod,ListComprehension,Oritertools

在Python3中,可以通过多种方法连接两个列表:1)使用 运算符,适用于小列表,但对大列表效率低;2)使用extend方法,适用于大列表,内存效率高,但会修改原列表;3)使用*运算符,适用于合并多个列表,不修改原列表;4)使用itertools.chain,适用于大数据集,内存效率高。

使用join()方法是Python中从列表连接字符串最有效的方法。1)使用join()方法高效且易读。2)循环使用 运算符对大列表效率低。3)列表推导式与join()结合适用于需要转换的场景。4)reduce()方法适用于其他类型归约,但对字符串连接效率低。完整句子结束。

pythonexecutionistheprocessoftransformingpypythoncodeintoExecutablestructions.1)InternterPreterReadSthecode,ConvertingTingitIntObyTecode,whepythonvirtualmachine(pvm)theglobalinterpreterpreterpreterpreterlock(gil)the thepythonvirtualmachine(pvm)

Python的关键特性包括:1.语法简洁易懂,适合初学者;2.动态类型系统,提高开发速度;3.丰富的标准库,支持多种任务;4.强大的社区和生态系统,提供广泛支持;5.解释性,适合脚本和快速原型开发;6.多范式支持,适用于各种编程风格。

Python是解释型语言,但也包含编译过程。1)Python代码先编译成字节码。2)字节码由Python虚拟机解释执行。3)这种混合机制使Python既灵活又高效,但执行速度不如完全编译型语言。

useeAforloopWheniteratingOveraseQuenceOrforAspecificnumberoftimes; useAwhiLeLoopWhenconTinuingUntilAcIntiment.ForloopSareIdeAlforkNownsences,而WhileLeleLeleLeleLoopSituationSituationSituationsItuationSuationSituationswithUndEtermentersitations。

pythonloopscanleadtoerrorslikeinfiniteloops,modifyingListsDuringteritation,逐个偏置,零indexingissues,andnestedloopineflinefficiencies


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

禅工作室 13.0.1
功能强大的PHP集成开发环境

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器