Unix/Linux Go Back    

OpenSolaris 2009.06 - man page for bfs (opensolaris section 1)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)

bfs(1)					  User Commands 				   bfs(1)

       bfs - big file scanner

       /usr/bin/bfs [-] filename

       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 editing.

       Normally, the size of the file being scanned is printed, as is the size of any file  writ-
       ten  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  expres-
       sions 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).  Com-
       mands  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  commands,  below).  The	following
       additional commands are 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.


	   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

       : 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 refer-

       ( . , . )xb/regular expression/label

	   A jump (either upward or downward) is made to label if the command succeeds. It  fails
	   under any of the following 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  com-
	   mand  is the only one that 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 someplace 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.


	   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 vari-
	   able name. For example, using the above assignments for variables 5 and 6:


	   will all print the first 100 lines.


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


	   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

	     .w junk
	     xv5!cat junk
	     !rm junk
	     !echo "%5"
	     xv6!expr %6 + 1

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


	   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:
			   : l
			   xv5!expr %5 - 1
			   !if 0%5 != 0 exit 2
			   xbn l

	   Example 2:
			   : l
			   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 argument, xc reverses switch. Initially, switch is set for no  crunch-
	   ing.  Crunched  output  has	strings of tabs and blanks reduced to one blank and blank
	   lines suppressed.

       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  editing
		   by the use of csplit(1).

       The following exit values are returned:

       0     Successful completion without any file or command errors.

       >0    An error occurred.

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWesu			   |

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

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

SunOS 5.11				   20 May 1996					   bfs(1)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 10:47 AM.