我正在寻找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

最佳答案

使用awk

ls -lrS | awk 'NR==2 { print; } END { print; }'

当行号print为2时,它NRs,并且在最后一行上再次出现。
注意:正如注释中指出的,$0可能在END块中可用,也可能不可用,这取决于您的awk版本。

10-08 01:31