logo

utils-std

Collection of commonly available Unix tools git clone https://anongit.hacktivis.me/git/utils-std.git

paste.1 (4560B)


  1. .\" SPDX-License-Identifier: BSD-3-Clause
  2. .\"
  3. .\" Copyright (c) 1989, 1990, 1993
  4. .\" The Regents of the University of California. All rights reserved.
  5. .\"
  6. .\" This code is derived from software contributed to Berkeley by
  7. .\" Adam S. Moskowitz and the Institute of Electrical and Electronics
  8. .\" Engineers, Inc.
  9. .\"
  10. .\" Redistribution and use in source and binary forms, with or without
  11. .\" modification, are permitted provided that the following conditions
  12. .\" are met:
  13. .\" 1. Redistributions of source code must retain the above copyright
  14. .\" notice, this list of conditions and the following disclaimer.
  15. .\" 2. Redistributions in binary form must reproduce the above copyright
  16. .\" notice, this list of conditions and the following disclaimer in the
  17. .\" documentation and/or other materials provided with the distribution.
  18. .\" 3. Neither the name of the University nor the names of its contributors
  19. .\" may be used to endorse or promote products derived from this software
  20. .\" without specific prior written permission.
  21. .\"
  22. .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  23. .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  24. .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  25. .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  26. .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  27. .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  28. .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  29. .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  30. .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  31. .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  32. .\" SUCH DAMAGE.
  33. .\"
  34. .\" @(#)paste.1 8.1 (Berkeley) 6/6/93
  35. .\"
  36. .Dd November 6, 2022
  37. .Dt PASTE 1
  38. .Os
  39. .Sh NAME
  40. .Nm paste
  41. .Nd merge corresponding or subsequent lines of files
  42. .Sh SYNOPSIS
  43. .Nm
  44. .Op Fl s
  45. .Op Fl d Ar list
  46. .Ar
  47. .Sh DESCRIPTION
  48. The
  49. .Nm
  50. utility concatenates the corresponding lines of the given input files,
  51. replacing all but the last file's newline characters with a single tab
  52. character, and writes the resulting lines to standard output.
  53. If end-of-file is reached on an input file while other input files
  54. still contain data, the file is treated as if it were an endless source
  55. of empty lines.
  56. .Pp
  57. The options are as follows:
  58. .Bl -tag -width Fl
  59. .It Fl d Ar list
  60. Use one or more of the provided characters to replace the newline
  61. characters instead of the default tab.
  62. The characters in
  63. .Ar list
  64. are used circularly, i.e., when
  65. .Ar list
  66. is exhausted the first character from
  67. .Ar list
  68. is reused.
  69. This continues until a line from the last input file (in default operation)
  70. or the last line in each file (using the
  71. .Fl s
  72. option) is displayed, at which
  73. time
  74. .Nm
  75. begins selecting characters from the beginning of
  76. .Ar list
  77. again.
  78. .Pp
  79. The following special characters can also be used in list:
  80. .Pp
  81. .Bl -tag -width flag -compact
  82. .It Li \en
  83. newline character
  84. .It Li \et
  85. tab character
  86. .It Li \e\e
  87. backslash character
  88. .It Li \e0
  89. Empty string (not a null character).
  90. .El
  91. .Pp
  92. Any other character preceded by a backslash is equivalent to the
  93. character itself.
  94. .It Fl s
  95. Concatenate all of the lines of each separate input file in command line
  96. order.
  97. The newline character of every line except the last line in each input
  98. file is replaced with the tab character, unless otherwise specified by
  99. the
  100. .Fl d
  101. option.
  102. .El
  103. .Pp
  104. If
  105. .Sq Fl
  106. is specified for one or more of the input files, the standard
  107. input is used; standard input is read one line at a time, circularly,
  108. for each instance of
  109. .Sq Fl .
  110. .Sh EXIT STATUS
  111. .Ex -std
  112. .Sh EXAMPLES
  113. List the files in the current directory in three columns:
  114. .Pp
  115. .Dl "ls | paste - - -"
  116. .Pp
  117. Combine pairs of lines from a file into single lines:
  118. .Pp
  119. .Dl "paste -s -d '\et\en' myfile"
  120. .Pp
  121. Number the lines in a file, similar to
  122. .Xr nl 1 :
  123. .Pp
  124. .Dl "sed = myfile | paste - -"
  125. .Pp
  126. Create a colon-separated list of directories named
  127. .Pa bin ,
  128. suitable
  129. for use in the
  130. .Ev PATH
  131. environment variable:
  132. .Pp
  133. .Dl "find / -name bin -type d | paste -s -d : -"
  134. .Sh SEE ALSO
  135. .Xr cut 1
  136. .Sh STANDARDS
  137. .Nm
  138. should be compliant with the
  139. IEEE Std 1003.1-2024 (“POSIX.1”)
  140. specification.
  141. .Sh HISTORY
  142. A
  143. .Nm
  144. command first appeared in
  145. .At III
  146. and has been available since
  147. .Bx 4.3 Reno .
  148. .Sh AUTHORS
  149. .An -nosplit
  150. The original Bell Labs version was written by
  151. .An Gottfried W. R. Luderer
  152. and the
  153. .Bx
  154. version by
  155. .An Adam S. Moskowitz
  156. and
  157. .An Marciano Pitargue .