【Linux】各行の文字を左右反転して出力するrevコマンドの利用手順

目次

概要

revコマンドは、入力されたテキストの各行において、文字の並びを末尾から先頭へ(左右反転)入れ替えて出力するツールです。ログファイル内の特定の末尾文字列を基準とした解析や、データの整合性チェック、あるいは単純な文字列操作の補助として、他のコマンドと組み合わせて利用されます。

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

構文

rev [ファイル名]

主な引数

引数説明
ファイル名反転処理を行う対象のテキストファイルを指定します。省略した場合は標準入力から読み取ります。

基本の使い方

管理ユーザー「mori」が、プロジェクトの設定値を確認するために、単純なテキストファイルの各行を反転させる例です。

BASH

# サンプルファイルの作成
echo "mori_project_2026" > /home/mori/workspace/sample.txt
echo "linux_system_admin" >> /home/mori/workspace/sample.txt

# revコマンドによる反転実行
rev /home/mori/workspace/sample.txt

TEXT

6202_tcejorp_irom
nimda_metsys_xunil

実践コマンド

行番号を付与した状態で、行の内容だけを反転させ、さらに行の順序自体を逆転(末尾行を先頭へ)させるパイプライン処理の例です。

BASH

# 行番号を付けてから内容を反転し、tacコマンドで行の並びを上下逆転させる
cat -n /home/mori/workspace/build_task.log | rev | tac

TEXT

gol.ksat_dliub/ecapskrow/irom/emoh/     2
txet.elpmas/ecapskrow/irom/emoh/     1

カスタムポイント

  • ファイルパス: /home/mori/workspace/build_task.log の部分は、解析対象とするログファイルやリストの絶対パスに変更して実行してください。
  • パイプの組み合わせ: 行番号の付与が必要ない場合は cat -n を省略し、上下の入れ替えが不要な場合は tac を除外して構成を調整してください。
  • 標準入力の使用: 他のコマンドの実行結果を直接処理したい場合は、command | rev の形式で受け渡すことが可能です。

注意点

  1. マルチバイト文字の扱い: 環境(ロケール設定)によっては、日本語などのマルチバイト文字が正しく反転されず、文字化けや意図しない表示になる可能性があるため、UTF-8環境での動作を確認してください。
  2. 上下反転との違い: rev は「左右(文字順)」の反転であり、行自体の「上下(行順)」を反転させる tac コマンドとは役割が異なる点に留意してください。
  3. 改行コード: 行末の改行文字自体は反転の影響を受けず、行としての構造は維持されたまま出力されます。

応用

ファイルパスから拡張子のみを抽出したい場合に、パス全体を反転させてから最初のドットまでを切り出し、再度反転させるというテクニックがあります。

BASH

# パスを反転させて最初のフィールド(拡張子)を取得し、再度反転して元に戻す
echo "/home/mori/backup/config.tar.gz" | rev | cut -d'.' -f1 | rev

TEXT

gz

まとめ

revコマンドは単独での利用以上に、他のフィルタリングコマンドと組み合わせることで真価を発揮するツールです。本手順で示したように、行番号を付与した状態での反転処理や、パス文字列からの特定要素抽出など、標準的なコマンドだけでは困難な文字列操作を簡潔に記述できます。利用に際しては、左右の反転と上下の反転(tac)を混同しないように構成し、対象とするデータの文字コードが環境に適しているかを確認することが重要です。

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

この記事を書いた人

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

目次