gpt4 book ai didi

Bash:仅获取第二行和最后一行输出(ls -lrS)

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

我希望获得 ls -lrS 命令输出的第二行和最后一行。我一直在使用 ls -lrS | (head -2 | tail -1) && (tail -n1) 但它似乎只得到第一行,我必须按控制 C 才能停止它。

我遇到的另一个问题是使用 awk 命令,我只想获取文件大小和文件名。如果我得到正确的行(第二行和最后一行),我想要的输出将是

files=$(ls -lrS | (head -2 | tail -1) && (tail -n1) awk '{ print "%s", $5; "%s", $8; }' )

我希望它能打印:

1234 文件.abc

12345 文件2.abc

最佳答案

使用格式稳定的 GNU stat 命令:

stat --format='%s %n' * | sort -n | sed -n '1p;$p'

如果您使用的是 BSD stat,请相应地进行调整。

如果您想要更多地控制哪些文件进入此计算,并且可以说是更好的可移植性,请使用 find。在此示例中,我将获取当前目录中的所有非点文件:

find -maxdepth 1 -not -path '*/\.*' -printf '%s %p\n' | sort -n | sed -n '1p;$p'

如果您的目录包含两个或更少的条目,或者您的任何条目的名称中是否有换行符,请注意。

关于Bash:仅获取第二行和最后一行输出(ls -lrS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34003405/

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