This manual page is part of the POSIX Programmer’s Manual.
The Linux implementation of this interface may differ
(consult the corresponding Linux manual page for details of
Linux behavior), or the interface may not be implemented on

strings — find printable strings in files

strings [−a] [−t format] [−n number] [file...]

The utility shall look for printable strings in regular
files and shall write those strings to standard output. A
printable string is any sequence of four (by default) or
more printable characters terminated by a <newline> or NUL
character. Additional implementation‐defined strings may be
written; see If the first argument is the results are

The utility shall conform to the Base Definitions volume of
POSIX.1‐2008, except for the unspecified usage of The
following options shall be supported:

−a        Scan files in their entirety. If is not specified,
          it is implementation‐defined what portion of each
          file is scanned for strings.

−n number Specify the minimum string length, where the
          argument is a positive decimal integer. The
          default shall be 4.

−t format Write each string preceded by its byte offset from
          the start of the file. The format shall be
          dependent on the single character used as the

          d     The offset shall be written in decimal.

          o     The offset shall be written in octal.

          x     The offset shall be written in hexadecimal.

The following operand shall be supported:

file      A pathname of a regular file to be used as input.
          If no operand is specified, the utility shall read
          from the standard input.

See the INPUT FILES section.


The input files named by the utility arguments or the
standard input shall be regular files of any format.

The following environment variables shall affect the
execution of

LANG      Provide a default value for the
          internationalization variables that are unset or
          null. (See the Base Definitions volume of
          POSIX.1‐2008, for the precedence of
          internationalization variables used to determine
          the values of locale categories.)

LC_ALL    If set to a non‐empty string value, override the
          values of all the other internationalization

LC_CTYPE  Determine the locale for the interpretation of
          sequences of bytes of text data as characters (for
          example, single‐byte as opposed to multi‐byte
          characters in arguments and input files) and to
          identify printable strings.

          Determine the locale that should be used to affect
          the format and contents of diagnostic messages
          written to standard error.

NLSPATH   Determine the location of message catalogs for the
          processing of


Strings found shall be written to the standard output, one
per line.  When the option is not specified, the format of
the output shall be:

          "%s", <string>
With the option, the format of the output shall be:

          "%o %s", <byte offset>, <string>
With the option, the format of the output shall be:

          "%x %s", <byte offset>, <string>
With the option, the format of the output shall be:

          "%d %s", <byte offset>, <string>

The standard error shall be used only for diagnostic




The following exit values shall be returned:

 0    Successful completion.

>0    An error occurred.


By default the data area (as opposed to the text, ‘‘bss’’,
or header areas) of a binary executable file is scanned.
Implementations document which areas are scanned.  Some
historical implementations do not require NUL or <newline>
terminators for strings to permit those languages that do
not use NUL as a string terminator to have their strings


Apart from rationalizing the option syntax and slight
difficulties with object and executable binary files, is
specified to match historical practice closely. The and
options were introduced to replace the non‐conforming and
options. These options are no longer specified by
POSIX.1‐2008 but may be present in some implementations.
The option historically means different things on different
implementations. Some use it to mean ‘‘in decimal’’, while
others use it as ‘‘in octal’’. Instead of trying to decide
which way would be least objectionable, the option was
added. It was originally named to mean ‘‘offset’’, but was
changed to to be consistent with The ISO C standard function
isprint() is restricted to a domain of This volume of
POSIX.1‐2008 requires implementations to write strings as
defined by the current locale.


The Base Definitions volume of POSIX.1‐2008,

Portions of this text are reprinted and reproduced in
electronic form from IEEE Std 1003.1, 2013 Edition, Standard
for Information Technology ‐‐ Portable Operating System
Interface (POSIX), The Open Group Base Specifications Issue
7, Copyright (C) 2013 by the Institute of Electrical and
Electronics Engineers, Inc and The Open Group.  (This is
POSIX.1‐2008 with the 2013 Technical Corrigendum 1 applied.)
In the event of any discrepancy between this version and the
original IEEE and The Open Group Standard, the original IEEE
and The Open Group Standard is the referee document. The
original Standard can be obtained online at

                             ‐4‐ .

Any typographical or formatting errors that appear in this
page are most likely to have been introduced during the
conversion of the source files to man page format. To report
such errors, see‐
pages/reporting_bugs.html .