gpt4 book ai didi

shell - 在 Bash/Python/Perl/Ruby/Sed/Awk 中什么用于系统管理,编码附件

转载 作者:行者123 更新时间:2023-12-04 13:15:21 25 4
gpt4 key购买 nike

我知道这个问题很主观。但我不能以更好的方式提出问题。我希望得到一些指导。

作为一名开发人员,我经常觉得如果我可以有一些工具来对日志文件、一组源文件或一些数据集等执行一些相当复杂的任务,那对我来说会变得多么容易。

显然,当需要重复执行相同类型的任务并且速度至关重要时,我可以考虑用 C++/Java 编写它。

但大多数时候,我只想做一次文本处理或文件搜索事件,只是为了执行快速检查或进行一些初步分析等。在这种情况下,我最好完成这项任务手动而不是用 C++/Java 编写。但是如果我知道一些像 Bash/Python/Perl/Ruby/Sed/Awk 这样的语言,我肯定可以在几秒钟内完成。

我知道这整个问题是主观的,没有客观明确的答案,但总的来说,开发者社区作为一个整体的感受是什么?我应该知道这些语言的哪些子集,以便我可以轻松完成所有这些类型的任务并提高我的工作效率。

Perl 会是一个不错的选择吗?
它是 Sed/Awk 的 super 集,此外它还允许编写简洁的代码。我可以用更少的代码行来完成。它既不可读也不易于维护,但无论如何我从不想要这些功能。
唯一让我感到困扰的是 Perl 最近受到的负面宣传,并且受到了 Ruby/Python 社区的大量批评。另外,我不确定它是否可以完全取代 bash 脚本。
如果不是,那么 Perl+Bash 是处理这类任务的好组合吗?

最佳答案

我倾向于用 ruby 做很多处理.它具有 perl 的所有功能,但我发现它更具可读性。两者 perlruby支持-n , -e , 和 -p选项。

-e 'command'    one line of script. Several -e's allowed. Omit [programfile]
-n assume 'while gets(); ... end' loop around your script
-p assume loop like -n but print line also like sed

例如在 ruby
seq 1 4 | ruby -ne 'BEGIN{ $product = 1 }; $product *= $_.to_i; END { puts $product }'
24

这与 perl 非常相似
seq 1 4 | perl -ne 'BEGIN{ $product = 1 }; $product *= $_; END { print $product }'
24

在 Python 中,它看起来像这样:
seq 1 4 | python -c 'import sys; print reduce(lambda x,y : int(x)*int(y),  sys.stdin.read().splitlines(True))'
24

虽然可以在 bash/awk/sed 中执行上述操作,但您将受到它们缺乏更高级功能的限制。

关于shell - 在 Bash/Python/Perl/Ruby/Sed/Awk 中什么用于系统管理,编码附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1800273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com