我希望获得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; }' )
Run Code Online (Sandbox Code Playgroud)
我希望它会打印出来:
1234 file.abc
12345 file2.abc
使用格式稳定的GNU stat命令:
stat --format='%s %n' * | sort -n | sed -n '1p;$p'
Run Code Online (Sandbox Code Playgroud)
如果您使用的是BSD stat,请相应调整.
如果您想要更多地控制哪些文件进入此计算,并且可以说更好的可移植性,请使用find.在这个例子中,我得到当前目录中的所有非点文件:
find -maxdepth 1 -not -path '*/\.*' -printf '%s %p\n' | sort -n | sed -n '1p;$p'
Run Code Online (Sandbox Code Playgroud)
如果您的目录包含两个或更少的条目,或者您的任何条目的名称中都有换行符,请注意.
| 归档时间: |
|
| 查看次数: |
673 次 |
| 最近记录: |