Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Need to combine two lines in a file based on first character of each line in a file Post 302967631 by bakunin on Thursday 25th of February 2016 07:09:39 PM
Old 02-25-2016
You might find it easier to divide your problem into two separate problems which are solvable independently:

1) concatenate all lines not starting with a number to the last line starting with a number, separated by spaces.

2) replace the spaces in the last field with hyphens i.e. "word1 word2" -> "word1-word2".

What may help you is the fact that each line consists of four "fields", separated by comma. Is this only the case in your sample or is this so throughout your data?

Any efforts from your side?

I hope this helps.

bakunin
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Merging lines based on occurances of a particular character in a file

Hi, Is there any way to merge two lines based on specific occurance of a character in a file. I am having a flat file which contains multiple records. Each row in the file should contain specified number of delimiter. For a particular row , if the delimiter count is not matched with... (2 Replies)
Discussion started by: mohan_tuty
2 Replies

2. Shell Programming and Scripting

join based on line number when one file is missing lines

I have a file that contains 87 lines, each with a set of coordinates (x & y). This file looks like: 1 200.3 -0.3 2 201.7 -0.32 ... 87 200.2 -0.314 I have another file which contains data that was taken at certain of these 87 positions. i.e.: 37 125 42 175 86 142 where the first... (1 Reply)
Discussion started by: jackiev
1 Replies

3. Shell Programming and Scripting

Combine multiple lines in file based on specific field

Hi, I have an issue to combine multiple lines of a file. I have records as below. Fields are delimited by TAB. Each lines are ending with a new line char (\n) Input -------- ABC 123456 abcde 987 890456 7890 xyz ght gtuv ABC 5tyin 1234 789 ghty kuio ABC ghty jind 1234 678 ght ... (8 Replies)
Discussion started by: ratheesh2011
8 Replies

4. Shell Programming and Scripting

Combine multiple unique lines from event log text file into one line, use PERL or AWK?

I can't decide if I should use AWK or PERL after pouring over these forums for hours today I decided I'd post something and see if I couldn't get some advice. I've got a text file full of hundreds of events in this format: Record Number : 1 Records in Seq : ... (3 Replies)
Discussion started by: Mayday22
3 Replies

5. Shell Programming and Scripting

Remove certain lines from file based on start of line except beginning and ending

Hi, I have multiple large files which consist of the below format: I am trying to write an awk or sed script to remove all occurrences of the 00 record except the first and remove all of the 80 records except the last one. Any help would be greatly appreciated. (10 Replies)
Discussion started by: nwalsh88
10 Replies

6. Shell Programming and Scripting

File w/ many line pairs--how do I order based on 1st lines only?

I have a file in which the data is stored in pairs of lines. The first line (beginining with ">") is a header, the second line is a sequence. I would like to sort the file by species name. Desired output for the example file: I can use sort -t'_' -k2 to alphabetize headers in the... (1 Reply)
Discussion started by: pathunkathunk
1 Replies

7. Shell Programming and Scripting

Joining lines in TXT file based on first character

Hi, I have a pipe delimeted text file where lines have been split over 2 lines and I need to join them back together. For example the file I have is similar to the following: aaa|bbb |ccc ddd|eee fff|ggg |hhh I ideally need to have it looking like the following aaa|bbb|ccc ddd|eee... (5 Replies)
Discussion started by: fuji_s
5 Replies

8. UNIX for Advanced & Expert Users

Need to combine two lines in a file based on first character of each line in a file

Hi, I have a requirement where I need to combine two lines in a file based on first character of each line in a file. Please find the sample content of the file below: Code: _______________________ 5, jaya, male, 4-5-90, single smart 6, prakash, male, 5-4-84, married fair 7, raghavi,... (1 Reply)
Discussion started by: jayaP
1 Replies

9. Shell Programming and Scripting

Program to combine two lines in a file on checking the first character of each line

Hi, I have a requirement where I need to combine two lines in a file based on first character of each line in a file. Please find the sample content of the file below: _______________________ 5, jaya, male, 4-5-90, single smart 6, prakash, male, 5-4-84, married fair 7, raghavi, female,... (12 Replies)
Discussion started by: jayaP
12 Replies

10. UNIX for Beginners Questions & Answers

Reading a file line by line and print required lines based on pattern

Hi All, i want to write a shell script read below file line by line and want to exclude the lines which contains empty value for MOUNTPOINT field. i am using centos 7 Operating system. want to read below file. # cat /tmp/d5 NAME="/dev/sda" TYPE="disk" SIZE="60G" OWNER="root"... (4 Replies)
Discussion started by: balu1234
4 Replies
man.repro(7)						 Miscellaneous Information Manual					      man.repro(7)

Name
       man.repro - the man.repro macro package for typesetting reference pages

Syntax
       tbl file...  | nroff [ -nN ] [ -rpS ] [ -rl1 ] -man.repro | col | ...
       tbl file...  | *troff [ -nN ] [ -rpS ] [ -rl1 ] -man.repro | ...

Description
       The macro package is used to format reference manual pages for printing or typsetting.  This reference page was formatted by command, using
       the macro package, or was formatted by the and the commands, using the macro package.

       The page size is 80 columns by 66 lines for output and is 8.5" x 11" when formatted with text formatters.  Page numbers appear at the  bot-
       tom  of	each output page with odd page numbers appearing on the right side and even page numbers appearing on the left side.  Page footers
       can optionally include the name of the reference page section.

       The format of the ULTRIX online reference pages is determined by the macro package.

   Macros
       The following describes the macros in the macro package.

       Any text argument can range from zero to six words.  Quotation marks (" ") can be used to include blanks in words.  If text is  not  speci-
       fied,  special treatment is applied to the next input line that has text to be printed.	In this way, can be used to italicize a whole line
       or followed by to make small bold letters.

       A prevailing indent distance is remembered between successive indented paragraphs, and is reset to a default value upon reaching  a  nonin-
       dented paragraph.  Default units for indents i are ens (an en is 1 character or 1/2 em space in current point size).

       Typeface and size are reset to default values before each paragraph, and after processing font and size setting macros.

       .B [ text... ]
		   Sets text text in boldface.	If no text is specified, the next text line is set in boldface.

       .BI word1 word2 [ words... ]
		   Sets word1 in boldface, word2 in an italic typeface, and then alternates between these two fonts for the remaining words, up to
		   six words.  Blanks between words are stripped unless the string is enclosed in quotation marks (" ").

       .BR word1 word2 [ words... ]
		   Sets word1 in boldface, word2 in a roman typeface, and then alternates between these two fonts for the remaining words,  up	to
		   six words.  Blanks between words are stripped unless the string is enclosed in quotation marks (" ").

       .CT character
		   Prints the keyboard control character indicator . For example, prints as .

       .CW	   Sets text in a constant width font until another font change is encountered.

       .De	   Ends an unfilled display block (started by Also ends automatic centering, if it was in effect.

       .Ds	   Starts  an unfilled display block.  Text between and is printed in a roman typeface, with `no fill' mode (no wrapping and blank
		   lines allowed) in effect.  The display block is set flush left.

       .DT	   Restores default tabs.  Default tabs are set to .5 inches, starting with .5i, 1i, ... .

       .EE	   Ends an example and restores basic text defaults and indents.

       .EX [ i ]   Starts an example.  Text between and is printed in a constant width font with `no fill'  mode  (no  wrapping  and  blank  lines
		   allowed) in effect.	The example is set flush left unless an indent i is specified.	Units of i are ens.

       .G [ text... ]
		   Sets text in a sans-serif typeface.	If no text is specified, the next text line is set in a sans-serif typeface.

       .GL [ text... ]
		   Sets text in a sans-serif italic typeface.  If no text is specified, the next text line is set in a sans-serif italic typeface.

       .HB [ words... ]
		   Sets  the  text in underline mode or in a sans-serif bold typeface, depending on the type of text formatter or If the text for-
		   matter is of type the next 999 input lines are formatted in underline mode italic mode), or all the lines up to a  font  change
		   are	formatted  in underline mode, depending on which limit is encountered first.  If the text formatter is of type text is set
		   in a sans-serif bold typeface until a font change is encountered.  Up to nine words can also be specified as arguments.

       .HP [i]	   Begins a paragraph with a hanging indent of i ens.

       .I [ text... ]
		   Sets text in an italic typeface.  If no text is specified, the next text line is set in an italic typeface.

       .I1 word    Sets a temporary indent to the length of the specified word.

       .I2 word    Reverses one line and then sets a temporary indent to the length of the specified word.

       .IB word1 word2 [ words... ]
		   Sets word1 in an italic typeface, word2 in boldface, and then alternates between these two fonts for the remaining words, up to
		   six words.  Blanks between words are stripped unless the string is enclosed in quotation marks (" ").

       .IP x [i]   Sets  the  prevailing  indent to i.	Then begins the indented paragraph with a hanging tag given by the next text line.  If the
		   tag does not fit, the macro places the next text on a separate line.  Tag x appears in bold typeface.

       .IR word1 word2 [ words... ]
		   Sets word1 in an italic typeface, word2 in a roman typeface, and then alternates between these  two	fonts  for  the  remaining
		   words, up to six words.  Blanks between words are stripped unless the string is enclosed in quotation marks (" ").

       .LP	   Same as the macro.  This macro is obsolete, but is provided for backwards compatibility.

       .MS reference_page section_subsection [ punctuation ]
		   Sets  reference_page  immediately  followed	by section_subsection in parentheses followed by optional punctuation, using fonts
		   that distinguish this reference page reference from ordinary text.  For example,

       .NE	   Ends a note. Also cancels automatic centering if it was in effect.

       .NT [ header1 ] [ C ]
       .NT [ C ] [ header2 ]
		   Starts a note.  If no arguments are specified, the default header for the note is `Note'.  If the first argument is the  letter
		   `C',  all text in the note is centered, for the next 99 text lines or until the macro is called, whichever comes first.  If the
		   first argument is not `C', it becomes the header of the note, even if header2 is also specified.  The header2 argument  becomes
		   the header of the note if the first argument is `C'.

       .PD [ v ]   Sets the interparagraph distance to v vertical spaces.  Resets the distance to the default value if v is omitted.

       .PN x [ y ] Sets  x  in	an  italic or constant width typeface (depending on the formatter type) and then reverts to the previous typeface.
		   The optional argument y is appended to x with no space, but printed in the previous typeface.  The x argument is usually a path
		   name; y is usually punctuation.

       .Pn x y [ z ]
		   Sets x in the current typeface, sets y in an italic or constant width typeface (depending on the formatter type) and appends it
		   to x, and finally reverts to the previous typeface.	The optional argument z is appended to y,  but	printed  in  the  previous
		   typeface.  Spaces are removed between x, y, and z, unless quotation marks (" ") are used to enclose strings with spaces.  The x
		   argument is usually a fixed path name; y is usually a variable path name; and z is usually punctuation.

       .PP	   Starts a block paragraph.  Sets the prevailing indent to .5i for and four picas for text formatters.

       .R	   Sets the text in a roman typeface until another font change is encountered.	Also ends underline mode if it was in effect.

       .RB word1 word2 [ words... ]
		   Sets word1 in a roman typeface, word2 in boldface, and then alternates between these two fonts for the remaining words,  up	to
		   six words.  Blanks between words are stripped unless the string is enclosed in quotation marks (" ").

       .RE [ k ]   Returns to the kth relative right shift indent level.  (Restores the left margin to the position prior to the kth call).  Spec-
		   ifying k=0 is equivalent to specifying k=1.	If k is omitted, restores the left margin to the most  recent  previous  position.
		   When k=1 or 0, the default indent increment is restored.

       .RI word1 word2 [ words... ]
		   Sets  word1	in  a  roman  typeface, word2 in an italic typeface, and then alternates between these two fonts for the remaining
		   words, up to six words.  Blanks between words are stripped unless the string is enclosed in quotation marks (" ").

       .RN	   Prints the return character indicator, .

       .RS [ i ]   Shifts the left margin to the right (relatively) the amount of i ens. The macro calls can be nested up to nine levels.  If i is
		   not	specified  for	the first call, the relative right shift increases .5 inch for and four picas for text formatters.  Nested
		   calls increment the relative indent by i ens, or by .2 inch for or by 2 picas for text formatters.

       .SH text    Creates a section header.

       .SM [ text ]
		   Sets text to be two points smaller than the current point size.  If no text is specified, the next text  line  is  set  in  the
		   smaller point size.

       .SS text    Creates a subsection header.

       .TB [ words... ]
		   Same as the macro.  This macro is obsolete, but is provided for backwards compatibility.

       .TH n c[s] [ a ] [ f ] [ x ]
		   Begins  a  new reference page and sets the page title.  Also sets up headers and footers for output pages, sets up all defaults
		   and traps, and calls the and macros.  The title appears as a header on all pages of the formatted reference page. The  n  argu-
		   ment is the reference page name.  The c argument is the primary section number or letter.  The s argument is the subsection, if
		   any.  The a argument is for an optional machine architecture specific label; for example ``VAX''.  The  f  argument	optionally
		   alters a portion of the page footer.  The x argument is for optional extra commentary; for example ``Unsupported''.

		   Fields  n,  c,  and	s  appear together at the top of each output page (see the top of this page for an example).  These fields
		   alternate between the right top and left top of a page header, corresponding to odd and even page  numbers.	 Field	a  appears
		   opposing the page name in the header when formatted with but appears as a bleed tab when formatted with text formatters.  The f
		   argument appears in the page footer on the inside edge of the page (left for odd page numbers, right for even).  The x argument
		   appears underneath the page name in the header.

		   The last three fields are optional.	To skip a field, specify a pair of quotation marks ("") in the field to be skipped.

       .TP [i]	   Sets  the  prevailing  indent to i.	Then begins the indented paragraph with a hanging tag given by the next text line.  If the
		   tag does not fit, the macro places the next text on a separate line.

       .UF footer  Replaces the section name (adjacent to the `chapter-page_number' pair in the page footer), defined by the option, with the text
		   footer.  This macro must not be called before the macro.

       .VE	   End a vertical margin bar.

       .VS [ 4 ]   Starts a vertical margin bar, if `4' is specified; otherwise, the macro does nothing.

   Macros That Cause Line Breaks
       The following macros cause line breaks:

	      De   Ds	EE   EX   HP   IP
	      LP   PP	RE   SH   SS   TH
	      TP

   Macros That Need Text Lines
       The following macros affect the following line of text if they are specified in the input without arguments:

	      B    BI	BR   G	  GL   I
	      IB   IR	RI   RB   SH   SS
	      SM

	  Defaults
	      Automatic hyphenation is turned off.

       Characters printed from the Special Font are artificially bolded by three units whenever the current font is `3'.

       The  default page size is 80 columns by 66 lines for output and 8.5" x 11" for output generated by text formatters.  The text area is hori-
       zontally placed on the page so that the effective page margin is .3 inches for and 7.5 picas for text formatters.

       The macro sets up the following defaults:

       o   Text is set in ``noadjust'' mode; the right margin is ragged.

       o   The default interparagraph distance is 1v for and .5v for text formatters.

       o   The basic text indent is .5 inches for and four picas for text formatters, from the left margin.

       o   The maximum text line length is 7.4 inches for and 36 picas for text formatters.

       o   Sets tab stops every .5 inches.

       o   The basic text point size is 11 points, with line spacing set to 12 points.

       o   The basic text font is ``R'' (a roman typeface).

       o   Reference page headers, section headers, and subsection headers are set in a sans-serif bold typeface.

Options
       -nN	   Numbers the first generated page as N.

       -rl1	   Turns on line double-spacing mode.

       -rpS	   Sets the section number to S.  The section number determines if the name of a section will appear in the page footer.   If  the
		   value  of S is 0, no name appears in the page footer.  When S is specified, that number determines the name that will appear in
		   the footer.	The section number appears in output page footers as S-N (chapter-page-number).  If S is not 0, the  name  of  the
		   section appears on the inside of the page footer, adjacent to the chapter-page-number sequence.

Restrictions
   Predefined Registers
       The following registers are predefined by the macro package and should not be changed:

       PO	   Page offset and page margin

       IN	   Left margin indent relative to the section headers

       LL	   Line length including

       PL	   Page length

       The register `l' is predefined when you specify the option. Its default value is 0.  The command does not use this option.

       The register `p' is predefined when you specify the option. Its default value is 0.  The command does not use this option.

       The register `p' should be set to a range 1-8 or 11-18 for unsupported reference pages.	It cannot be set to values `l', `n', `o', or `p'.

   Reserved Registers
       The following registers are reserved for internal use by the and macro packages:

	      A1   DX	EX   l	 p   p#
	      PF

       In addition, registers beginning with the characters `)', `]', and `}' are also reserved for internal use.

       Registers predefined by the commands, and the and text preprocessors and formatters should not be redefined.

   Predefined Strings
       The following strings are predefined by the macro package and should not be changed:

       lq	   " if `` if

       rq	   " if '' if

       S	   Command string to change type size to 10 points.

   Reserved Strings and Macros
       The following string and macro names are reserved for internal use by the and macro packages:

	      ##   A1	BD   BK   CD   D
	      DE   DS	HH   ID   LD   NO
	      NX   P	ya   yn   yl   ys

       In addition, names beginning with the characters `)', `]', and `}' are also reserved for internal use.

       Names predefined by the commands, and the and text preprocessors and formatters should not be redefined.

   .TH Macro Restrictions
       The section number should only be 1-8, `n', `l', `o', or `p'.  Other values might not be recognized by the or commands.

       Sections 6, 7, `n', `l', `o', and `p' do not currently have subsections, so subsections should not be specified.

       The  architecture field (a) should not exceed four characters.  A value longer than four characters might print outside the right page mar-
       gin.

       Reference pages containing commands should be preprocessed by an text preprocessor before being installed on the system.

       Reference pages containing commands must not be preprocessed before being installed on the system.

   The Name Section
       The command assumes the Name section of a reference page has the following format:
       name[, name, name ...] - explanatory text
       There should be at least one space after any comma and only one space following the ``backslash hyphen'' (-).  There  should  not  be  any
       commands in the explanatory text.  The explanatory text should be brief.  The command combines information in the Name section with parame-
       ters of the macro to create an entry in a database searched by the and commands.

Portability Considerations
       The ULTRIX macro packages contain extensions and enhancements borrowed from other macro packages.  If you have a  need  to  write  portable
       reference pages, you should not use the following macros:

	      CT   CW	De   Ds   EE   EX
	      G    GL	HB   I1   I2   LP
	      MS   NE	NT   PN   Pn   R
	      RN   TB	UF

       The and macros are obsolete.

       The  ULTRIX  macro  differs  from  other implementations of the macro.  The primary differences are in the placement of the page title, and
       third and fifth fields in the output.  The page title (the page name and section number) is commonly placed  on	both  sides  of  the  page
       header in other implementations.  The more common placement of the third field is in the center of the page footer.  The more common place-
       ment of the fifth field is in the center of the page header.

       The macro permits the use of the percent (%) character in any of its fields.  The presence of the percent character may cause problems  for
       other implementations of this macro.

       Use  of the and commands should be avoided, because the version of the command in some other implementations might not preprocess reference
       pages through the command.  The commands also might not be installed.

Examples
       The following example processes this manual page for a character-cell device:
       % cd /usr/man/man7
       % tbl man.repro.7 | nroff -rp7 -n5 -man.repro | col | lpr -Plp
       In this example, the option for initializes number register to specify that this page is from Section 7 of the Reference Pages.	The option
       specifies a starting page number of 5. The first page printed is numbered `7-5'.

Files
       The				macro package file

See Also
       col(1), man(1), nroff(1), tbl(1), man(7), man.nopage(7), catman(8)

																      man.repro(7)
All times are GMT -4. The time now is 03:15 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy