我使用命令
dir L01 * .gz / o-s / -c> L01.txt
查找目录中的所有gz文件并按大小排序。效果很好!但是,我需要以Gb为单位而不是以字节为单位!
01/24/2020 12:36 AM 3018394731 v3000418221_L01_82_1.fq.gz
01/24/2020 12:36 AM 2883376937 v3000418221_L01_82_2.fq.gz
01/24/2020 12:36 AM 2875257587 v3000418221_L01_69_1.fq.gz
[01/24/2020 12:36 AM 2785098410 v3000418221_L01_69_2.fq.gz
[01/24/2020 12:36 AM 2520038171 v3000418221_L01_99_1.fq.gz
[01/24/2020 12:36 AM 2478618550 v3000418221_L01_62_1.fq.gz
[01/24/2020 12:36 AM 2470651439 v3000418221_L01_99_2.fq.gz
我也只需要文件名和大小以Gb为单位,没有日期和时间
而且,如果命令对所有子目录中的文件进行处理,并给出如下输出,那就太好了:
目录L01(或其他):
v3000418221_L01_82_1.fq.gz 2.5 Gb
v3000418221_L01_82_2.fq.gz 2.4 Gb
目录L02:
v3000418221_L01_12_1.fq.gz 2.1 Gb
v3000418221_L01_32_2.fq.gz 0.4 Gb
v3000418221_L01_42_1.fq.gz 1.5 Gb
v3000418221_L01_8_2.fq.gz 2.4 Gb
这不是我的计算机,所以我尝试在cmd中进行操作而不安装python。谢谢!
您可以在PowerShell中执行以下操作,它将输出按FileInfo
(大小)排序且大小转换为GB的Length
对象。
Get-ChildItem -Filter '*L01*.gz' | Sort Length -Desc |
Select LastWriteTime,Name,@{n='SizeGB';e={$_.Length/1GB}}
如果要通过管道将输出原样保存到文件,则只需添加| Out-File L01.txt
。
在PowerShell中,dir
是Get-ChildItem
的别名。因此,您可以根据需要使用dir -Filter '*L01*.gz'
。
PowerShell与对象一起使用。如果您的对象具有属性名称,则默认情况下,它们将在表输出中显示为列标题。如果要删除标题,则可以将输出通过管道传递到Format-Table -HideTableHeaders
。
Get-ChildItem -Filter '*L01*.gz' | Sort Length -Desc |
Select LastWriteTime,Name,@{n='SizeGB';e={$_.Length/1GB}} |
Format-Table -HideTableHeaders | Out-File L01.txt