如何在Linux命令行输出首行后按第6列排序剩余内容
最简单的解决办法
直接拆分两步处理:先输出标题行,再处理并排序剩余内容,用最基础的命令组合就能搞定,完全不用复杂的sed/awk。
方法1:两次调用目标命令(适合快速执行的命令,比如df)
df -h | head -n 1; df -h | tail -n +2 | sort -k 6
head -n 1提取首行标题tail -n +2跳过首行取剩余内容,再用sort -k 6按第6列排序
方法2:单次生成输出(适合耗时/输出会变化的命令)
如果担心两次调用命令可能得到不一致的输出,可以先把结果存到临时文件再处理:
# 把命令输出存到临时文件 df -h > /tmp/tmp_output.txt # 打印标题行 head -n 1 /tmp/tmp_output.txt # 排序并打印剩余内容 tail -n +2 /tmp/tmp_output.txt | sort -k 6 # 清理临时文件 rm /tmp/tmp_output.txt
这两种方法都是用最基础的head/tail/sort命令组合,逻辑直白,完全不用记复杂的语法,复用性拉满。
内容的提问来源于stack exchange,提问作者Old Uncle Ho
相关产品推荐
相关产品推荐

