在 csh 中排序之前保留文件的 header
keep the header of file before sorting in csh
我有以下 file.rpt:
Data Manhattan Wire Wire
Delay Distance Length Diff[%]
#############################
0.558 728.282 738.89 1%
0.481 255.258 285.887 12%
0.552 652.888 677.985 4%
0.431 420.896 477.73 14%
0.506 580.288 633.018 9%
0.388 350.22 463.05 32%
0.541 622.088 672.761 8%
0.462 384.064 586.98 53%
0.565 574.016 594.434 4%
0.470 339.268 450.927 33%
0.566 664.304 672.092 1%
0.441 436.428 534.146 22%
我正在尝试对其中一列进行排序并保持 3 行 header 不变。
如何在不操作其他文件的情况下做到这一点?
我尝试了类似下面的操作:
head -3 file.rpt ; sort -nrk4,4 file.rpt | -
你可以这样做:
head -3 file.rpt ; tail -n +4 file.rpt | sort -nrk4,4
-n
: 输出最后X行
+4
:输出从第 4 行开始。因此跳过前 3 行
- 使用
|
将tail
的输出作为输入发送到sort
。
结果:
Data Manhattan Wire Wire
Delay Distance Length Diff[%]
#############################
0.462 384.064 586.98 53%
0.470 339.268 450.927 33%
0.388 350.22 463.05 32%
0.441 436.428 534.146 22%
0.431 420.896 477.73 14%
0.481 255.258 285.887 12%
0.506 580.288 633.018 9%
0.541 622.088 672.761 8%
0.565 574.016 594.434 4%
0.552 652.888 677.985 4%
0.566 664.304 672.092 1%
0.558 728.282 738.89 1%
我想这算不上 csh
答案,但是:
sh -c '{ sed 3q file.rpt; sed 1,3d file.rpt | sort -nrk4,4; }'
在csh
中,您可以:
( sed 3q file.rpt; sed 1,3d file.rpt | sort -nrk4,4; )
我有以下 file.rpt:
Data Manhattan Wire Wire
Delay Distance Length Diff[%]
#############################
0.558 728.282 738.89 1%
0.481 255.258 285.887 12%
0.552 652.888 677.985 4%
0.431 420.896 477.73 14%
0.506 580.288 633.018 9%
0.388 350.22 463.05 32%
0.541 622.088 672.761 8%
0.462 384.064 586.98 53%
0.565 574.016 594.434 4%
0.470 339.268 450.927 33%
0.566 664.304 672.092 1%
0.441 436.428 534.146 22%
我正在尝试对其中一列进行排序并保持 3 行 header 不变。 如何在不操作其他文件的情况下做到这一点?
我尝试了类似下面的操作:
head -3 file.rpt ; sort -nrk4,4 file.rpt | -
你可以这样做:
head -3 file.rpt ; tail -n +4 file.rpt | sort -nrk4,4
-n
: 输出最后X行+4
:输出从第 4 行开始。因此跳过前 3 行- 使用
|
将tail
的输出作为输入发送到sort
。
结果:
Data Manhattan Wire Wire
Delay Distance Length Diff[%]
#############################
0.462 384.064 586.98 53%
0.470 339.268 450.927 33%
0.388 350.22 463.05 32%
0.441 436.428 534.146 22%
0.431 420.896 477.73 14%
0.481 255.258 285.887 12%
0.506 580.288 633.018 9%
0.541 622.088 672.761 8%
0.565 574.016 594.434 4%
0.552 652.888 677.985 4%
0.566 664.304 672.092 1%
0.558 728.282 738.89 1%
我想这算不上 csh
答案,但是:
sh -c '{ sed 3q file.rpt; sed 1,3d file.rpt | sort -nrk4,4; }'
在csh
中,您可以:
( sed 3q file.rpt; sed 1,3d file.rpt | sort -nrk4,4; )