Linux Tips

テキストファイル内の制御コードを検索するには

北浦訓行
2007/3/28

 テキストファイルに含まれる文字を検索する場合、grepを使うケースが多い。しかし、grepには16進数を指定する機能がないため、テキストファイルに含まれる各種制御コードの有無を検索できない。

 このような場合、シェルの機能を利用すれば各種制御コードの有無を検索できる。多くのディストリビューションでは、bashが標準となっているので、ここではbashによる指定方法を紹介する。

 bashでは、$'<文字列>'という指定をすると、それがバックスラッシュでエスケープされている文字に置き換えられる。これにより、各種制御コードを検索できる。具体的には、以下のようにデコードされる。

制御コード
意味
\a
警告(ベル)
\b
バックスペース
\e
エスケープ文字
\f
フォームフィード文字
\n
改行文字
\r
復帰文字
\t
水平タブ文字
\v
垂直タブ文字
\\
バックスラッシュ
\’
シングルクオート
\nnn
ASCIIコードの8進値がnnnである文字(1文字につき数字3けた)
\xnnn
ASCIIコードの16進値がnnnである文字(1文字につき数字3けた)

 例えば、あるサブディレクトリのテキストファイルから「EB C7」という16進数のコードがいくつあるかを検索する場合は、以下のように指定する。

$ grep -c $'\xeb\xc7' *
a.txt:7
b.txt:18

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間