Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jan 2001 11:52:17 -0800
From:      "Crist J. Clark" <cjclark@reflexnet.net>
To:        Dru <genisis@istar.ca>
Cc:        Ken Bolingbroke <hacker@bolingbroke.com>, questions@FreeBSD.ORG
Subject:   Re: Command to Make "Printable" Text
Message-ID:  <20010119115217.B7958@rfx-216-196-73-168.users.reflex>
In-Reply-To: <Pine.BSF.4.21.0101190753480.2934-100000@x1-6-00-50-ba-de-36-33.kico1.on.home.com>; from genisis@istar.ca on Fri, Jan 19, 2001 at 07:55:37AM -0500
References:  <Pine.BSF.4.21.0101190116500.23373-100000@fremont.bolingbroke.com> <Pine.BSF.4.21.0101190753480.2934-100000@x1-6-00-50-ba-de-36-33.kico1.on.home.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 19, 2001 at 07:55:37AM -0500, Dru wrote:
> 
> 
> On Fri, 19 Jan 2001, Ken Bolingbroke wrote:
> 
> And for a good explanation of why, read:
> 
> http://www.oreillynet.com/pub/a/bsd/2000/10/11/FreeBSD_Basics.html?page=2

But it does not actually work right for this kind of thing.

First, I type something in using shell editing characters as I go. But
this is what I see on my screen when I am done,

  [530:~] script
  Script started, output file is typescript
  [501:~] cat <<EOF
  ? This is a test.
  ? In this line, I will type some stuff and then kill it with ctrl-D.
  ? Here I go past the end.
  ? This line is pristine.
  ? EOF
  This is a test.
  In this line, I will type some stuff and then kill it with ctrl-D.
  Here I go past the end.
  This line is pristine.
  [502:~] exit

  Script done, output file is typescript

Use the '-v' switch on cat(1) to see all of my keystrokes and other
goodies,

  [531:~] cat -v typescript
  Script started on Fri Jan 19 11:35:59 2001
  [501:~] cat <<EOF^M^M
  ? This is not^H^[[K^H^[[K^H^[[Ka test.^M^M
  ? In this line, I will type an extra^H^H^H^H^H^H^H^H^[[Pn^H^[[P ^H^[[Pe^Hxtra^[[K^H^H^H^Htra^[[K^H^H^Hra^[[K^H^Ha^[[K^H^[[Ksome stuff and then kill it with ctrl-D.^M^M
  ? Here I go past the end and kill with ctrl-K.^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^[[K.^M^M
  ? This line is pristine.^M^M
  ? EOD^H^[[KF^M^M
  This is a test.^M
  In this line, I will type some stuff and then kill it with ctrl-D.^M
  Here I go past the end.^M
  This line is pristine.^M
  [502:~] ^D^H^Hexit^M

  Script done on Fri Jan 19 11:37:43 2001

Now use col(1) followed by a look at the output with cat(1),

  [532:~] col < typescript > typescript1
  [533:~] cat typescript1
  Script started on Fri Jan 19 11:35:59 2001
  [501:~] cat <<EOF
  ? This is noKa test.
  ? In this line, I will type PPPxtraKsome stuff and then kill it with ctrl-D.
  ? Here I go past the endK.nd kill with ctrl-K.
  ? This line is pristine.
  ? EOKF
  This is a test.
  In this line, I will type some stuff and then kill it with ctrl-D.
  Here I go past the end.
  This line is pristine.
  [502:~] exit

  Script done on Fri Jan 19 11:37:43 2001

We see that col(1) did not clean things properly. The '-b' switch does
the same thing.

> > 
> > The command you're looking for is 'col'.  See 'man col'.
> > 
> > Ken
> > 
> > On Fri, 19 Jan 2001, Crist J. Clark wrote:
> > 
> > > My mind is going. I know I figured out how to do this in a clever way
> > > once before, but it is not coming to me now.
> > > 
> > > I have a file that was, say, generated by using script(1). There is
> > > user interaction recorded and knowing users, there are things like
> > > backspaces, arrow keys, tabs for auto-completetion, etc. in the
> > > recorded input. How do I convert this file into one that just contains
> > > the characters that show up when the file is printed to the screen?
> > > 
> > > That is, if I do a,
> > > 
> > >   $ cat script.txt
> > >   This is clean output.
> > > 
> > > It looks good, but if I were to see what is really there, it looks
> > > like,
> > > 
> > >   $ cat -v script.txt
> > >   This is not^H^[[K^H^[[K^H^[[Kclean output.^M^M
> > > 
> > > However, I want to create a file that just contains what "looks like"
> > > the final output in the first example. If I do,
> > > 
> > >   $ cat script.txt > newscript.txt
> > > 
> > > All of the non-printed characters go. I know there is a command that
> > > will do this, 'cause I have done it, but can't remember.
> > > 
> > > Oh, and anyone thinking of saying something about cut-n-paste... Don't
> > > even.
> > > -- 
> > > Crist J. Clark                           cjclark@alum.mit.edu
> > > 
> > > 
> > > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > > with "unsubscribe freebsd-questions" in the body of the message
> > > 
> > 
> > 
> > 
> > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > with "unsubscribe freebsd-questions" in the body of the message
> > 
> > 
> > 
> > 

-- 
Crist J. Clark                           cjclark@alum.mit.edu


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010119115217.B7958>