MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


User Commands                                              bfs(1)



NAME
     bfs - big file scanner

SYNOPSIS
     /usr/bin/bfs [-] filename


DESCRIPTION
     The bfs command is (almost) like ed(1)  except  that  it  is
     read-only  and  processes much larger files. Files can be up
     to 1024K bytes and 32K lines, with  up  to  512  characters,
     including  new-line, per line (255 for 16-bit machines). bfs
     is usually more efficient than ed(1) for  scanning  a  file,
     since  the file is not copied to a buffer. It is most useful
     for identifying sections of a large file where csplit(1) can
     be  used  to divide it into more manageable pieces for edit-
     ing.


     Normally, the size of the file being scanned is printed,  as
     is  the size of any file written with the w (write) command.
     The optional  -  suppresses  printing  of  sizes.  Input  is
     prompted  with * if P and a carriage return are typed, as in
     ed(1). Prompting  can  be  turned  off  again  by  inputting
     another  P and carriage return. Note that messages are given
     in response to errors if prompting is turned on.


     All address expressions described under ed(1) are supported.
     In  addition, regular expressions may be surrounded with two
     symbols besides / and ?:

     >    indicates downward search without wrap-around, and


     <    indicates upward search without wrap-around.



     There is a slight difference in mark names;  that  is,  only
     the  letters  a  through z may be used, and all 26 marks are
     remembered.

  bfs Commands
     The e, g, v, k, p, q, w, =, !, and null commands operate  as
     described  under  ed(1).  Commands  such as ---, ]-, ]=,
     -12, and ]4p are accepted. Note that  1,10p  and  1,10  will
     both  print   the first ten lines. The f command only prints
     the name of the file being scanned; there is no   remembered
     file  name.  The   w command is independent of output diver-
     sion, truncation, or crunching (see the xo, xt, and xc  com-
     mands,   below).   The  following  additional  commands  are



SunOS 5.11          Last change: 20 May 1996                    1






User Commands                                              bfs(1)



     available:

     xf file

         Further commands are taken from the named file. When  an
         end-of-file  is reached, an interrupt signal is received
         or an error occurs, reading resumes with the  file  con-
         taining the xf. The xf commands may be nested to a depth
         of 10.


     xn

         List the marks currently in use (marks are set by the  k
         command).


     xo [file]

         Further output from the p and null commands is  diverted
         to  the named file, which, if necessary, is created mode
         666 (readable and writable  by  everyone),  unless  your
         umask setting (see umask(1)) dictates otherwise. If file
         is missing, output is diverted to the  standard  output.
         Note  that  each diversion causes truncation or creation
         of the file.


     : label

         This positions a label in a command file. The  label  is
         terminated by new-line, and blanks between the : (colon)
         and the start of the label are ignored. This command may
         also  be  used  to  insert comments into a command file,
         since labels need not be referenced.


     ( . , . )xb/regular expression/label

         A jump (either upward or downward) is made to  label  if
         the  command succeeds. It fails under any of the follow-
         ing conditions:

             1.   Either address is not between 1 and $.

             2.   The second address is less than the first.

             3.   The regular expression does not match at  least
                  one  line in the specified range, including the
                  first and last lines.
         On success, . (dot) is set to the  line  matched  and  a
         jump is made to label. This command is the only one that



SunOS 5.11          Last change: 20 May 1996                    2






User Commands                                              bfs(1)



         does not issue an error message on bad addresses, so  it
         may  be  used  to  test whether addresses are bad before
         other commands are  executed.  Note  that  the  command,
         xb/^/ label, is an unconditional jump.

         The xb command is allowed only if it is read from  some-
         place  other than a terminal. If it is read from a pipe,
         only a downward jump is possible.


     xt number

         Output from the p and null commands is truncated to,  at
         most, number characters. The initial number is 255.


     xv[digit][spaces][value]

         The variable name is the specified digit  following  the
         xv. The commands xv5100 or xv5 100 both assign the value
         100 to the variable 5. The command xv61,100p assigns the
         value 1,100p to the variable 6. To reference a variable,
         put a % in front of  the  variable  name.  For  example,
         using the above assignments for variables 5 and 6:

           1,%5p
           1,%5
           %6


         will all print the first 100 lines.

         g/%5/p

         would globally search for the characters 100  and  print
         each  line  containing  a  match.  To escape the special
         meaning of %, a \ must precede it.

         g/".*\%[cds]/p

         could be used to match and list %c, %d,  or  %s  formats
         (for  example,  "printf"-like statements) of characters,
         decimal integers, or strings. Another feature of the  xv
         command  is  that  the  first line of output from a UNIX
         system command can be stored into a variable.  The  only
         requirement  is  that the first character of value be an
         !. For example:

           .w junk
           xv5!cat junk
           !rm junk
           !echo "%5"



SunOS 5.11          Last change: 20 May 1996                    3






User Commands                                              bfs(1)



           xv6!expr %6 ] 1


         would put the current line into variable 35,  print  it,
         and increment the variable 36 by one. To escape the spe-
         cial meaning of ! as the first character of value,  pre-
         cede it with a \.

         xv7\!date

         stores the value !date into variable 7.


     xbz label
     xbn label

         These two commands will test the last saved return  code
         from  the  execution of a UNIX system command (!command)
         or nonzero value, respectively, to the specified  label.
         The  two  examples  below both  search for the next five
         lines containing the string size:

         Example 1:
                         xv55
                         : l
                         /size/
                         xv5!expr %5 - 1
                         !if 0%5 != 0 exit 2
                         xbn l




         Example 2:
                         xv45
                         : l
                         /size/
                         xv4!expr %4 - 1
                         !if 0%4 = 0 exit 2
                         xbz l





     xc [switch]

         If switch is 1, output from the p and null  commands  is
         crunched;  if  switch  is 0, it is not. Without an argu-
         ment, xc reverses switch. Initially, switch is  set  for
         no  crunching.  Crunched  output has strings of tabs and
         blanks reduced to one blank and blank lines suppressed.



SunOS 5.11          Last change: 20 May 1996                    4






User Commands                                              bfs(1)



OPERANDS
     The following operand is supported:

     filename    Any file up to 1024K bytes and 32K  lines,  with
                 up  to  512  characters, including new-line, per
                 line (255 for 16-bit machines). filename can  be
                 a  section  of  a  larger  file  which  has been
                 divided into more manageable sections for  edit-
                 ing by the use of csplit(1).


EXIT STATUS
     The following exit values are returned:

     0     Successful completion  without  any  file  or  command
           errors.


     >0    An error occurred.


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Availability                 SUNWesu                     
    


SEE ALSO
     csplit(1), ed(1), umask(1), attributes(5)

DIAGNOSTICS
     Message is ? for errors in commands, if prompting is  turned
     off.  Self-explanatory  error  messages  are  displayed when
     prompting is on.














SunOS 5.11          Last change: 20 May 1996                    5



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™