gpt4 book ai didi

bash - 如何尽可能紧凑地确定最新的主要和完整内核版本字符串

转载 作者:行者123 更新时间:2023-11-29 09:10:24 25 4
gpt4 key购买 nike

所以我打算在这里做的是尽可能紧凑地确定最新的主要版本和完整的内核版本字符串(没有无数的 grep 管道)。

我已经对结果非常满意,但如果有人有任何想法如何压缩第一行,哪怕是最轻微的,那将是非常棒的(它必须在有 no minor patches 的情况下工作)。

http://www.kernel.org/pub/linux/kernel/v3.x/ 的136kB 相比,kernel.org 的索引只有36kB。所以这就是我使用它的原因:

_major=$(curl -s http://www.kernel.org/ -o /tmp/kernel && cat /tmp/kernel | grep -A1 mainline | tail -1 | cut -d ">" -f3 | cut -d "<" -f1) 
pkgver=${_major}.$(cat /tmp/kernel | grep ${_major} | head -1 | cut -d "." -f6)

最佳答案

这只是现阶段的思考练习,因为真正的答案在上面的评论中,但这里有一些可能的改进。

原文:

_major=$(curl -s http://www.kernel.org/ -o /tmp/kernel && cat /tmp/kernel | grep -A1 mainline | tail -1 | cut -d ">" -f3 | cut -d "<" -f1)

使用 tee 代替 cat:

_major=$(curl -s http://www.kernel.org/ | tee /tmp/kernel | grep -A1 mainline | tail -1 | cut -d ">" -f3 | cut -d "<" -f1)

使用 sed 来最小化管道的数量,并使命令不可读

_major=$(curl -s http://www.kernel.org/ | tee /tmp/kernel | sed -n '/ainl/,/<\/s/ s|.*>\([0-9\.]*\)</st.*|\1|p')

小技巧:缩短 URL

_major=$(curl -s kernel.org | tee /tmp/kernel | sed -n '/ainl/,/<\/s/ s|.*>\([0-9\.]*\)</st.*|\1|p')

关于bash - 如何尽可能紧凑地确定最新的主要和完整内核版本字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14319555/

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