⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch35_17.htm

📁 the unix power tools
💻 HTM
字号:
<HTML><!--Distributed by F --><HEAD><TITLE>[Chapter 35] 35.17 Making Text in Columns with pr </TITLE><METANAME="DC.title"CONTENT="UNIX Power Tools"><METANAME="DC.creator"CONTENT="Jerry Peek, Tim O'Reilly &amp; Mike Loukides"><METANAME="DC.publisher"CONTENT="O'Reilly &amp; Associates, Inc."><METANAME="DC.date"CONTENT="1998-08-04T21:48:22Z"><METANAME="DC.type"CONTENT="Text.Monograph"><METANAME="DC.format"CONTENT="text/html"SCHEME="MIME"><METANAME="DC.source"CONTENT="1-56592-260-3"SCHEME="ISBN"><METANAME="DC.language"CONTENT="en-US"><METANAME="generator"CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"><LINKREV="made"HREF="mailto:online-books@oreilly.com"TITLE="Online Books Comments"><LINKREL="up"HREF="ch35_01.htm"TITLE="35. You Can't Quite Call This Editing"><LINKREL="prev"HREF="ch35_16.htm"TITLE="35.16 Make Columns Automatically with cols "><LINKREL="next"HREF="ch35_18.htm"TITLE="35.18 Pasting Things in Columns "></HEAD><BODYBGCOLOR="#FFFFFF"TEXT="#000000"><DIVCLASS="htmlnav"><H1><IMGSRC="gifs/smbanner.gif"ALT="UNIX Power Tools"USEMAP="#srchmap"BORDER="0"></H1><MAPNAME="srchmap"><AREASHAPE="RECT"COORDS="0,0,466,58"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="467,0,514,18"HREF="jobjects/fsearch.htm"ALT="Search this book"></MAP><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch35_16.htm"TITLE="35.16 Make Columns Automatically with cols "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 35.16 Make Columns Automatically with cols "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><B><FONTFACE="ARIEL,HELVETICA,HELV,SANSERIF"SIZE="-1">Chapter 35<BR>You Can't Quite Call This Editing</FONT></B></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch35_18.htm"TITLE="35.18 Pasting Things in Columns "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 35.18 Pasting Things in Columns "BORDER="0"></A></TD></TR></TABLE>&nbsp;<HRALIGN="LEFT"WIDTH="515"TITLE="footer"></DIV><DIVCLASS="SECT1"><H2CLASS="sect1"><ACLASS="title"NAME="UPT-ART-2490">35.17 Making Text in Columns with pr </A></H2><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-41038"></A>The<SPANCLASS="link"><EMCLASS="emphasis">pr</EM> command (<ACLASS="linkend"HREF="ch43_07.htm"TITLE="Quick-and-Dirty Formatting Before Printing ">43.7</A>)</SPAN>is famous for printing a file neatly on apage&nbsp;- with margins at top and bottom, filename, date, and page numbers.It can also print text in columns: one file per column or many columnsfor each file.</P><PCLASS="para">The <EMCLASS="emphasis">-t</EM> option takes away the heading and margins at the top andbottom of each page.That's useful when you want data &quot;pasted&quot; into columns with nointerruptions.</P><DIVCLASS="sect2"><H3CLASS="sect2"><ACLASS="title"NAME="UPT-ART-2490-SECT-1.1">35.17.1 One File per Column: -m </A></H3><PCLASS="para">The <EMCLASS="emphasis">-m</EM> option reads all files on the command line simultaneouslyand prints each in its own column, like this:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">% <CODECLASS="userinput"><B>pr -m -t </B></CODE><CODECLASS="replaceable"><I>file1 file2 file3</I></CODE>The lines              The lines              The linesof file1               of file2               of file3are here               are here               are here  ...                    ...                    ...</PRE></BLOCKQUOTE></P><PCLASS="para"><EMCLASS="emphasis">pr</EM> may use TAB characters between columns.If that would be bad, you can pipe <EMCLASS="emphasis">pr</EM>'s output through<SPANCLASS="link"><EMCLASS="emphasis">expand</EM> (<ACLASS="linkend"HREF="ch41_04.htm"TITLE="How UNIX Handles TAB Characters ">41.4</A>)</SPAN>.Many versions of <EMCLASS="emphasis">pr</EM> have a <CODECLASS="literal">-s</CODE><CODECLASS="replaceable"><I>X</I></CODE> option thatsets the column separator to the single character <EMCLASS="emphasis">X</EM>.</P></DIV><DIVCLASS="sect2"><H3CLASS="sect2"><ACLASS="title"NAME="UPT-ART-2490-SECT-1.2">35.17.2 One File, Several Columns: -number </A></H3><PCLASS="para">An option that's a number will print a file in that number of columns.For instance, the <EMCLASS="emphasis">-3</EM> option prints a file in three columns.The file is read, line by line, until the first column is full (bydefault, that takes 56 lines).Next, the second column is filled.Then, the third column is filled.If there's more of the file, the first column of page 2 is filled&nbsp;- andthe cycle repeats:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">% <CODECLASS="userinput"><B>pr -3 file1</B></CODE>Nov  1 19:44 1992  file1  Page 1Line 1 here            Line 57 here           Line 115 hereLine 2 here            Line 58 here           Line 116 hereLine 3 here            Line 59 here           Line 117 here  ...                    ...                    ...</PRE></BLOCKQUOTE></P><PCLASS="para">The columns aren't balanced&nbsp;- if the file will fit into one column, the othercolumns aren't used.You can change that by adjusting <EMCLASS="emphasis">-l</EM>, the page length option;see the section below.</P></DIV><DIVCLASS="sect2"><H3CLASS="sect2"><ACLASS="title"NAME="UPT-ART-2490-SECT-1.3">35.17.3 Order Lines Across Columns with -l </A></H3><PCLASS="para">Do you want to arrange your data across the columns, so that the firstthree lines print across the top of each column, the next three linesare the second in each column, and so on, like this?</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">% <CODECLASS="userinput"><B>pr -l1 -t -3 file1</B></CODE>Line 1 here            Line 2 here            Line 3 hereLine 4 here            Line 5 here            Line 6 hereLine 7 here            Line 8 here            Line 9 here  ...                    ...                    ...</PRE></BLOCKQUOTE></P><PCLASS="para">Use the <EMCLASS="emphasis">-l1</EM> (page length 1 line) and <EMCLASS="emphasis">-t</EM> (no title) options.Each &quot;page&quot; will be filled by three lines (or however many columns youset).You have to use <EMCLASS="emphasis">-t</EM>; otherwise, <EMCLASS="emphasis">pr</EM> will silently ignore anypage lengths that don't leave room for the header and footer.That's just what you want if you want data in columns with no headings.</P><PCLASS="para">If you want headings too, pipe the output of <EMCLASS="emphasis">pr</EM> through another<EMCLASS="emphasis">pr</EM>:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">% <CODECLASS="userinput"><B>pr -l1 -t -3 file1 | pr -h file1</B></CODE>Nov  1 19:48 1992  file1  Page 1Line 1 here            Line 2 here            Line 3 hereLine 4 here            Line 5 here            Line 6 hereLine 7 here            Line 8 here            Line 9 here  ...                    ...                    ...</PRE></BLOCKQUOTE></P><PCLASS="para">The <CODECLASS="literal">-h&nbsp;file1</CODE> puts the filename into the heading.</P><PCLASS="para">Also see<SPANCLASS="link"><EMCLASS="emphasis">paste</EM> (<ACLASS="linkend"HREF="ch35_18.htm"TITLE="Pasting Things in Columns ">35.18</A>)</SPAN>and<SPANCLASS="link"><EMCLASS="emphasis">cols</EM> (<ACLASS="linkend"HREF="ch35_16.htm"TITLE="Make Columns Automatically with cols ">35.16</A>)</SPAN>.Of course, programming languages like<SPANCLASS="link"><EMCLASS="emphasis">awk</EM> (<ACLASS="linkend"HREF="ch33_11.htm"TITLE="Quick Reference: awk ">33.11</A>)</SPAN>and<SPANCLASS="link"><EMCLASS="emphasis">perl</EM> (<ACLASS="linkend"HREF="ch37_01.htm#UPT-ART-5560"TITLE="What We Do and Don't Tell You About Perl ">37.1</A>)</SPAN>can also maketext into columns.</P></DIV><DIVCLASS="sect1info"><PCLASS="SECT1INFO">- <SPANCLASS="authorinitials">JP</SPAN></P></DIV></DIV><DIVCLASS="htmlnav"><P></P><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch35_16.htm"TITLE="35.16 Make Columns Automatically with cols "><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT="Previous: 35.16 Make Columns Automatically with cols "BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="book"HREF="index.htm"TITLE="UNIX Power Tools"><IMGSRC="gifs/txthome.gif"SRC="gifs/txthome.gif"ALT="UNIX Power Tools"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch35_18.htm"TITLE="35.18 Pasting Things in Columns "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 35.18 Pasting Things in Columns "BORDER="0"></A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172">35.16 Make Columns Automatically with cols </TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="index"HREF="index/idx_0.htm"TITLE="Book Index"><IMGSRC="gifs/index.gif"SRC="gifs/index.gif"ALT="Book Index"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172">35.18 Pasting Things in Columns </TD></TR></TABLE><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><IMGSRC="gifs/smnavbar.gif"SRC="gifs/smnavbar.gif"USEMAP="#map"BORDER="0"ALT="The UNIX CD Bookshelf Navigation"><MAPNAME="map"><AREASHAPE="RECT"COORDS="0,0,73,21"HREF="../index.htm"ALT="The UNIX CD Bookshelf"><AREASHAPE="RECT"COORDS="74,0,163,21"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="164,0,257,21"HREF="../unixnut/index.htm"ALT="UNIX in a Nutshell"><AREASHAPE="RECT"COORDS="258,0,321,21"HREF="../vi/index.htm"ALT="Learning the vi Editor"><AREASHAPE="RECT"COORDS="322,0,378,21"HREF="../sedawk/index.htm"ALT="sed &amp; awk"><AREASHAPE="RECT"COORDS="379,0,438,21"HREF="../ksh/index.htm"ALT="Learning the Korn Shell"><AREASHAPE="RECT"COORDS="439,0,514,21"HREF="../lrnunix/index.htm"ALT="Learning the UNIX Operating System"></MAP></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -