Linux - strings命令-查找字符串

Linux - strings命令-查找字符串

Tags: Shell

摘要

Linux - strings命令-查找字符串,strings命令在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用。

strings命令

strings命令在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用。

01 strings命令语法

strings [ -a ] [ - ] [ -o ] [ -t Format ] [ -n Number ] [ -Number ] [ file ... ]

02 strings命令选项

-a 或 -            搜索整个文件,而不仅仅是数据段,以寻找可显示的字符串。如果省略这个标志,那么 strings 命令只在对象文件的初始化数据空间内寻找。
-n Number            指定最小的字符串长度(除了缺省的 4 个字符以外)。字符串长度的最大值是 4096。这个标志与 -Number 标志相同。
-o            列出文件中每个跟随在其八进制偏移量之后的字符串。这个标志与 -t o 标志相同。
-t Format            列出从文件最开始起,每个跟随在其偏移量之后的字符串。该格式取决于用作 Format 变量的字符。
                    - d
                    - 以十进制写下偏移量。
                    - o
                    - 以八进制写下偏移量。
                    - x
                    - 以十六进制写下偏移量。
                    注:当 -o 和 -t Format 标志在一个命令行上多次定义,那么最后指定的标志控制 strings 命令的行为。
-Number            指定最小的字符串长度(除了缺省的 4 个字符以外)。字符串长度的最大值是 4096。这个标志与 -n Number 标志相同。
File            要搜索的二进制文件或对象文件。

03 strings命令实例

准备文件file.txt,内容如下

@(#)56
1.17 com/cmd/scan/strings.c, cdmscan, bos320 5/7/92 10:21:20
Standard input
strings.cat
/usr/mbin/strings
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
%7o
%7d
%7x
%7o
%7d

例子1

默认参数4,strings file,只显示行长度大于等于4的行

zhu@zhu-pc ~ $ strings file.txt 
@(#)56
1.17 com/cmd/scan/strings.c, cdmscan, bos320 5/7/92 10:21:20
Standard input
strings.cat
/usr/mbin/strings
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]

例子2

搜索至少有 12 个字符的字符串

zhu@zhu-pc ~ $ strings -12 file.txt 
1.17 com/cmd/scan/strings.c, cdmscan, bos320 5/7/92 10:21:20
Standard input
/usr/mbin/strings
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]

例子3

搜索至少有 20 个字符的字符串,并以十进制来显示偏移量

zhu@zhu-pc ~ $ strings -t d -n 20 file.txt 
      7 1.17 com/cmd/scan/strings.c, cdmscan, bos320 5/7/92 10:21:20
    113 Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
    174 Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
    235 Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
    296 Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]
    357 Usage: strings [-a | -] [-o] [-t format] [-n | -#] [file...]