From Wikipedia, the free encyclopedia - View original article
|In other scripts|
|This article needs additional citations for verification. (July 2012)|
|In other scripts|
The vertical bar (|) is a character with various uses in mathematics, computing, and typography. It may be called by various other names including the pipe (by the Information Technology community for example, referring to the I/O pipeline construct), Sheffer stroke (by computer or mathematical logicians), polon, verti-bar, vbar, stick, vertical line, vertical slash, or bar, glidus.
The vertical bar is used as a mathematical symbol in
A pipe is an inter-process communication mechanism originating in Unix which allows the output (standard out and, optionally, standard error) of one process to be used as input (standard in) to another. In this way, a series of commands can be "piped" together, giving users the ability to quickly perform complex multi-stage processing from the command line or as part of a Unix shell script ("bash file"). In most Unix shells (command interpreters), this is represented by the vertical bar character. For example:
where the output from the "grep" process is piped to the "more" process.
The same "pipe" feature is also found in later versions of DOS and Microsoft Windows.
Specifically, in C and other languages following C syntax conventions, such as C++, Perl, Java and C#,
(a | b) denotes a bitwise or; whereas a double vertical bar
(a || b) denotes a (short-circuited) logical or. Since the character was originally not available in all code pages and keyboard layouts, ANSI C can transcribe it in form of the trigraph
??! which, outside string literals, is equivalent to the
Although not as common as commas or tabs, the vertical bar can be used as a delimiter in a flat file. Examples of a pipe-delimited standard data format are LEDES 1998B and HL7. It is frequently used because vertical bars are typically uncommon in the data itself.
Similarly, the vertical bar may see use as a delimiter for regular expression operations (e.g. in sed). This is useful when the regular expression contains instances of the more common forward slash (
/) delimiter; using a vertical bar eliminates the need to escape all instances of the forward slash.
In calculi of communicating processes (like pi-calculus), the vertical bar is used to indicate that processes execute in parallel.
In APL, it is the modulo function (called residue in APL) when between two operands.
In APL, it is the absolute value function when before a single operand.
In the Khoisan languages and the International Phonetic Alphabet, the vertical bar is used to write the dental click (ǀ). A double vertical bar is used to write the alveolar lateral click (ǁ). Since these are technically letters, they have their own Unicode code points in the Latin Extended-B range: U+01C0 for the single bar and U+01C1 for the double bar. Longer single and double vertical bars are used to mark prosodic boundaries in the IPA.
The vertical bar is encoded in Unicode at U+007C | vertical line (124decimal, HTML:
The broken bar (¦) in computing was historically an allograph of the vertical bar and was perceived so before a broad implementation of extended ASCII character sets (namely, ISO/IEC 8859 series), which did distinguish both. Since the 1990s, it is considered a separate character, not a part of ASCII, and also termed "parted rule" in Unicode documentation. But in the text mode fonts, as well as in other TUI applications on DOS, Windows and Unix-like systems, the glyph used for the vertical bar may look exactly like a broken bar. This is no longer the case as of Windows 7.
The broken bar is encoded in Unicode at U+00A6 ¦ broken bar (166decimal, HTML:
Due to historical confusion between the two, computer keyboards and displays may not clearly or consistently differentiate them:
The broken bar has hardly any practical application and does not appear to have any clearly identified uses distinct from the vertical bar. In non-computing use — for example in mathematics, physics and general typography — the broken bar is not an acceptable substitute for the vertical bar. Aforementioned usages in computing rely on the abstract character with code point 124 (0x7C) in ASCII (or ASCII compatible code page) and do not depend on visual rendering, which actually may be a broken bar in some environments.
|Vertical bar ('|')||Broken bar ('¦')|
CP437, CP667, CP720, CP737, CP790, CP819, CP852, CP855, CP860, CP861, CP862, CP865, CP866, CP867, CP869, CP872, CP895, CP932, CP991
|CP775||124 (7Ch)||167 (A7h)|
|CP850, CP857, CP858||124 (7Ch)||221 (DDh)|
|CP863||124 (7Ch)||160 (A0h)|
|CP864||124 (7Ch)||219 (DBh)|
|ISO/IEC 8859-1, -7, -8, -9, -13,|
CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, CP1258
|124 (7Ch)||166 (A6h)|
|ISO/IEC 8859-2, -3, -4, -5, -6, -10, -11, -14, -15, -16||124 (7Ch)||N/A|
|EBCDIC (CCSID 500 variant)||187 (BBh)||166 (A6h)|
|HTML|||||¦ or ¦|
Additional related Unicode characters:
In LaTeX, the vertical bar can be used as delimiter in mathematical mode. The sequence \| creates a double vertical line (a | b \| c is set as ). This has different spacing from \mid and \parallel, which are relational operators: a \mid b \parallel c is set as . In LaTeX text mode, the vertical bar produces an em dash (—), or you can use the \textbar command instead.