gpt4 book ai didi

shell - 为什么要学习Shell编程?

转载 作者:行者123 更新时间:2023-12-03 12:37:39 24 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

3年前关闭。




Improve this question




我为什么要学习 Shell 编程?在现实世界中可以用它做什么?你能告诉我一些可以用它完成的强大功能或一些特殊功能,以说服我现在应该开始学习 shell 编程吗?

最佳答案

学习 shell 编程有十亿零一个理由。主要原因之一是系统管理。

Here is an example需要根据同一目录中的另一个文件重命名 ~750 个文件的人。这是通过 3 行 shell 脚本完成的。要获得更多示例,只需搜索带有标签的问题 [bash], [sed] or [awk] .

当有人让我向他们展示一个很酷的“shell 编程”示例时,我总是向他们展示这个 awk 1-liner(甚至可能是 1-worder?)。它将过滤列表以仅显示唯一值而不更改原始顺序。这很重要,因为大多数其他解决方案要求您首先对列表进行排序,这会破坏原始顺序。

$ echo -e "apple\npear\napple\nbanana\nmango\npear\nbanana" | awk '!a[$0]++'
apple
pear
banana
mango

awk 命令说明

非排序的独特魔法发生在 !a[$0]++ .由于 awk 支持关联数组,它使用当前记录(又名行) $0作为数组的键 a[] .如果之前没有见过该 key , a[$0]评估为 0 (零)这是 awk 未设置索引的默认值。然后我们否定这个值以返回 TRUE在该键第一次出现时。 a[$0]然后递增,以便后续点击此键将返回 FALSE因此永远不会打印重复值。我们还利用了 awk 默认为 print $0 的事实。 (打印当前记录/行)如果表达式返回 TRUE没有更多 { commands }给出。

如果您仍然不明白,请不要担心,这是一个非常简洁和优化的版本,它可能是一个更长的 awk 脚本。

关于shell - 为什么要学习Shell编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4464311/

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