You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash操作:反转MD5文件中哈希与文件名顺序并按字母排序

没问题,这有几个简单高效的方法可以帮你搞定需求,根据你平时常用的工具选就行:

方法1:用awk + sort 命令行工具(最快捷)

假设你的file1.txt每行格式是 MD5哈希值 文件名(哈希和文件名用空格分隔),直接在终端运行下面的命令:

awk '{print $2, $1}' file1.txt | sort > file2.txt

简单解释下各部分的作用:

  • awk '{print $2, $1}':把每行的第二个字段(文件名)和第一个字段(MD5哈希)交换位置输出
  • sort:自动把交换后的内容按文件名首字母升序排序
  • > file2.txt:将最终结果写入目标文件file2.txt

如果你的文件里哈希和文件名之间是其他分隔符(比如逗号、制表符),可以调整awk的分隔符参数:

  • 制表符分隔:awk -F'\t' '{print $2, $1}' file1.txt | sort > file2.txt
  • 逗号分隔:awk -F',' '{print $2, $1}' file1.txt | sort > file2.txt

方法2:用Python脚本(适合需要更灵活处理的场景)

如果你习惯用Python,或者需要处理空行、异常格式等复杂情况,可以用这个脚本:

# 读取源文件内容
with open('file1.txt', 'r') as f_in:
    lines = f_in.readlines()

processed_lines = []
for line in lines:
    line = line.strip()
    if not line:
        continue  # 跳过空行
    # 这里默认按空格分割,分隔符不同可修改为split(',')或split('\t')
    parts = line.split()
    if len(parts) >= 2:
        filename = parts[1]
        md5_hash = parts[0]
        processed_lines.append(f"{filename} {md5_hash}")

# 按文件名字母顺序排序
processed_lines.sort()

# 写入目标文件
with open('file2.txt', 'w') as f_out:
    f_out.write('\n'.join(processed_lines) + '\n')

运行脚本后,就能得到符合要求的file2.txt。

内容的提问来源于stack exchange,提问作者user9331490

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:17:57