在 Linux 中,strings 命令用于从二进制文件(或其他非文本文件)中提取可打印的字符串。它本身不提供排序功能,通常需要配合其他命令(如 sort、uniq 等)来对结果进行排序或处理。
下面按常见需求介绍几种排序和处理方式。
strings file.bin | sort
strings file.bin | sort -u
或
strings file.bin | sort | uniq
strings file.bin | awk '{ print length, $0 }' | sort -n | cut -d' ' -f2-
strings file.bin | awk '{ print length, $0 }' | sort -nr | cut -d' ' -f2-
strings file.bin | sort | uniq -c | sort -nr
输出示例:
120 main
85 printf
30 exit
如果你只是想保持原顺序:
strings file.bin
strings 默认就是按文件中出现的顺序输出。
strings file.bin | sort -f
strings -n 6 file.bin | sort -u
(-n 6 表示只显示长度 ≥ 6 的字符串)
strings file1.bin file2.bin | sort -u
如果你有具体场景(比如:逆向分析、日志提取、去重统计、按地址排序等),可以告诉我,我可以给你更精确的命令。