【Linux】lvコマンドで文字コードを自動判別してテキストを表示・変換する

目次

概要

lv(Large View)は、多言語対応の強力なファイルビューアー(ページャー)です。

lessコマンドと操作感は似ていますが、最大の特徴は日本語などの文字コード(UTF-8, Shift_JIS, EUC-JP等)を強力に自動判別・変換して表示できる点です。

Windowsで作成されたShift_JISのファイルや、古いシステムのEUC-JPのログファイルなどが文字化けして読めない場合に、このコマンドを使うだけで正しく表示できることが多いため、トラブルシューティングの現場で重宝されます。

※多くのディストリビューションでは標準インストールされていないため、初回のみインストールが必要です。

# Ubuntu/Debian系
sudo apt install lv

# RHEL/CentOS系 (EPELリポジトリ等が必要な場合あり)
sudo dnf install lv

仕様(引数・オプション)

構文

lv [オプション] [ファイル名]

主な引数・オプション

文字コード変換に関するオプションが充実しています。

オプション説明
-I[文字コード]入力ファイルの文字コードを指定します(Input)。
指定例: -Is (Shift_JIS), -Iu (UTF-8), -Ie (EUC-JP)
-O[文字コード]表示(出力)する文字コードを指定します(Output)。
リダイレクト時の変換にも使用します。
-W[数値]画面の横幅(文字数)を指定して折り返します。
-H[数値]画面の縦幅(行数)を指定します。
+[数値]指定した行番号から表示を開始します。
+/[文字列]指定した文字列を検索した状態でファイルを開きます。
-s連続する空行を1行にまとめて表示します。

指定可能な文字コード記号

-I-O の直後に記述する記号です。

記号対応する文字コード
uUTF-8
sShift_JIS (CP932)
eEUC-JP
jISO-2022-JP (JIS)

基本の使い方

テキストファイルの閲覧(自動判別)

オプションを指定せずにファイルを開くと、lvはファイルの中身から文字コードを自動的に判別して、現在のターミナルの文字コードに合わせて表示してくれます。

lv readme_sjis.txt

実行結果イメージ:

(Shift_JISのファイルであっても、UTF-8環境のターミナルで文字化けせずに表示される)
================================
 システム更新履歴
================================
2025/01/15 機能追加について
...
(qキーで終了、Spaceキーでスクロール)

実践コマンド

1. 文字コードを明示して閲覧する

自動判別がうまくいかない場合(文字化けが直らない場合)、-Iオプションで「このファイルはShift_JISだ」と明示して開くことができます。

# 入力をShift_JIS(-Is)として扱い、表示する
lv -Is legacy_data.csv

2. ファイルの文字コードを変換して保存する

lvはページャーですが、リダイレクト機能を使うことでiconvやnkfのような「文字コード変換ツール」としても利用できます。

以下は、Shift_JISのファイルを読み込み、EUC-JPに変換して別ファイルに保存する例です。

# 入力をShift_JIS(-Is)、出力をEUC-JP(-Oe)に指定してリダイレクト
lv -Is -Oe input_sjis.txt > output_euc.txt

実行結果イメージ:

画面には何も表示されず、変換されたデータが output_euc.txt に書き込まれます。

3. 指定した文字列の場所から開く

ログファイルの特定のエラー箇所を即座に見たい場合に便利です。

# "CRITICAL" という文字列を検索して、その場所から表示開始
lv +/CRITICAL application.log

カスタムポイント

目的に応じて以下のオプションを組み合わせてください。

  • 入力コードの指定 (-I...):
    • Windowsで作ったファイルなら -Is (Shift_JIS)
    • 古いUNIXのファイルなら -Ie (EUC-JP)
  • 出力コードの指定 (-O...):
    • 最近のLinux環境なら通常は -Ou (UTF-8) ですが、メール送信用にJISコードが必要な場合は -Oj を使います。
  • 行頭指定 (+100):
    • ファイルの100行目から読み始めたい場合に使用します。

注意点

  1. インストールの必要性:
    • lessはほぼ全てのLinuxに標準搭載されていますが、lvは追加インストールが必要なケースが多いです。環境構築ができないサーバーでは使えない場合があります。
  2. カラー表示:
    • lvはデフォルトでエスケープシーケンス(色コード)の表示に対応していますが、grepのハイライトなどが正しく表示されない場合は -c オプションを試してください。
  3. バイナリファイル:
    • less同様、バイナリファイルを開くと予期せぬ動作をすることがあるため注意してください。

応用

grep検索結果の文字化けを防ぐ

grepコマンドでShift_JISのファイルを検索すると、端末の設定によっては文字化けして結果が読めないことがあります。パイプでlvに渡すことで、結果を正しく表示できます。

# Shift_JISのファイルから "エラー" を検索し、結果をlvで正しく表示
grep "エラー" windows_log.txt | lv

まとめ

lvコマンドは、文字コードの壁を取り払う強力なツールです。

  • 向く場面: 文字化けしたテキストファイルを見たい時、ファイルの文字コードを変換したい時。
  • 変更ポイント: -Iで読み込むファイルの形式、-Oで書き出す形式を指定する。
  • 注意点: 標準コマンドではないため、インストールが必要な場合がある。

基本は less を使いつつ、文字化けに遭遇したら迷わず lv を使うのがLinux管理の定石です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次