行数

テキスト中の行の数。改行文字で区切られた論理行と、表示幅に応じて折り返される表示行の 2 種類があり、文字数・ページ数の算出やコードの規模測定に使われる。

行数 (line count) は、テキストを構成する行の数です。一見単純な概念ですが、「行」の定義には 2 種類あります。論理行 (logical line) は改行文字で区切られた行で、テキストエディタの行番号に対応します。表示行 (visual line / wrapped line) は画面の幅に応じてワードラップされた行で、同じテキストでもウィンドウ幅によって行数が変わります。

プログラミングでは、行数はコードの規模を測る基本的な指標です。LOC (Lines of Code) はソフトウェアの規模を表す伝統的な指標で、空行やコメント行を除いた SLOC (Source Lines of Code) がより正確な指標として使われます。規模の桁をつかむ例として、Linux カーネルは 2021 年に公開されたバージョン 5.11 の時点で約 3,000 万行あり、その 6 割程度をデバイスドライバが占めます。Google は 2016 年に公表した論文で、社内の大多数のコードを単一のリポジトリに収めており、その規模が数十億行に達すると説明しています。ただし行数は数え方で大きく変わります。生成コードや同梱ライブラリを含めるか、コメント行を数えるか、言語判定を伴うツールと wc -l のどちらで測るかによって、同じリポジトリでも数割の差が出ます。他プロジェクトとの行数比較を持ち出すときは、測定条件を揃えないと数字が意味を持ちません。

テキストエディタやターミナルでは、行数の表示が標準機能です。VS Code はステータスバーに「行:列」の形式でカーソル位置を表示し、ファイル全体の行数も確認できます。UNIX の wc -l コマンドはファイルの行数を数える最もシンプルな方法です。ただし、wc -l は改行文字の数を数えるため、最終行に改行がないファイルでは実際の行数より 1 少ない値が返ります。

文字数と行数の関係は、1 行あたりの文字数 (行長) で決まります。原稿用紙は 1 行 20 文字 × 20 行 = 400 文字です。A4 用紙に 40 文字 × 36 行で印刷すれば 1 ページ 1,440 文字になります。行数から文字数を概算する場合、1 行あたりの平均文字数を掛ければ近似値が得られますが、短い行 (段落の最終行など) があるため実際の文字数はやや少なくなります。

CSV や TSV ファイルでは、行数がレコード数に対応します。100 万行の CSV ファイルは 100 万件のデータを含みます (ヘッダー行を除く)。ただし、フィールド内に改行を含むデータがある場合、単純な行数カウントではレコード数と一致しません。正確なレコード数を得るには、CSV パーサーでフィールドの引用符を正しく処理する必要があります。

ウェブデザインでは、テキストの行数を制限する CSS テクニックがあります。-webkit-line-clamp プロパティで表示行数を制限し、超過分を省略記号 (...) で表示できます。カード UI やリスト表示で説明文を 3 行に制限する場合などに使われ、文字数ではなく行数で表示量を制御する手法です。このプロパティは単独では効かず、display: -webkit-box と -webkit-box-orient: vertical、overflow: hidden をあわせて指定する必要があります。また折り返し位置は表示幅とフォントで変わるため、狭い画面では意図した行数より早く省略されます。カードの高さを揃えたいだけなら行数で切り、要約文として意味を保ちたいなら入稿時に文字数で上限を決めるほうが結果が安定します。

この記事を共有