SlideShare une entreprise Scribd logo
1  sur  16
ページャ less を使う
2017-05-19 下野寿之
Unixコマンドの less はいろいろなところで使います。
man でコマンドのオンラインマニュアルを見るときにも、
Python で関数のマニュアルを ? や help で表示しているときにも、
Perl で perldoc コマンドで使う時にもよく使います。
特に、ショートカットキーを覚えていると、とても便利なので、
マニュアルを見ても分かりにくいものも含めてまとめました。
全部読んでもらわなくても、5分間斜め読みしてもらって、
いろいろな便利機能を知って貰うための資料です。(補足以外7ページ)
なぜ less を使うのか
• 端末 (いわゆる黒い画面) で、いろいろな
テキストファイルの中身をすぐに閲覧出来る。
• 1個であっても多数であってもすぐに閲覧できる。
• 小さなファイルでも大きなファイルでも良い。
• キーボードショートカットで多数の機能を利用可能。
• 設定をすれば、色を付けることができる。
※ ワードなどテキスト形式以外だと不適。
ただし、バイナリ形式でも、解読などには使える場合がある。
less の起動
• 端末で下記のように入力すれば起動する。
less ファイル名
less ファイル名1 ファイル名2 ..
less ワイルドカードを使ったファイル指定
cat filename | less # (←パイプを使った場合)
• ただし、less を明示的に入力しなくても、
いろいろな場面で less は起動される。
• man コマンドで Unixコマンドのヘルプ参照時
• ipython で Python言語の関数のヘルプを読む時
• perldoc で Perl言語の関数のヘルプを読む時
less のショートカット (1)
• 下記のようなヘルプの表示 : h ← 1個のキーを押下する
• 閲覧の終了/ヘルプの終了 : q ← Ctrl +C では終わらない
• 一画面下に進む : f または space
• 半画面下に進む : d
• 一画面上に戻る : b
• 半画面上に戻る : u
• 文字列の検索 : / (スラッシュキー) に正規表現
• 行番号の表示のオン/オフ : - , shift + n , Enter
• 長い行の折り畳みのオン/オフ : - , shift + S , Enter
• 次のファイル : colon(:) , n ( 数 : n という使い方もある )
• 前のファイル : colon , p
• 指定正規表現を含む行のみ表示 : & に続けて正規表現
Enterキーが必要
であることは、
マニュアルから
は分かりにくい。
日本語など
非ASCII文字も
検索可能
less のショートカット (2)
• 指定の行番号にジャンプ : 行番号の数に続けて g
• 最終行にジャンプ : shift + g (時間がかかる場合がある)
• 全体の指定パーセントの位置へ : 数 に続けて p (例,30p)
• 検索による文字強調の解除 : Esc , u
• 閲覧内容の保存 : -, o , space に続けてファイル名
• どんどん追加される最終行の追跡 : shift + f
• タブの文字幅の調整 : - x に続けて数を指定し、Enter
• ファイル情報の表示 : = (イコール)
パイプで受け取った内容を
保管するのにとても便利
文字化けをする場合
• 日本語またはその他の場合 :
• lv (エル,ヴィ) をインストールして使う。
• iconv コマンドで文字コード変換する方法もある。
• 環境変数(LCで始まるもの)をうまく設定する。
• バイナリファイルを読む場合 :
• od コマンドを使う。例 : od –tax1 ファイル名
less で注意すべき点
• 制御文字に関して :
• less filename と cat filename | less で見え方が
異なる。(制御文字が見えない場合に注意)
• & で特定の正規表現を含む行のみを表示する
場合に、大きなファイルだと、時間がかかる
場合がある。Ctrl+ c で中断が可能。
• バージョンに関して
• & による検索機能は、2009年4月で実装。
古い less は更新が必要。
補足事項
なぜこの文書を作ったか
• この文書の著者は今までの人生で、
次のことを100回くらい思ったため :
1. less を使えば良いのに。
2. less を使いこなせば良いのに。
3. less 提供ヘルプにも分かりにくい箇所がある。
この文書の未記載項目
• 色つきでプログラムコードを表示すること
• すぐ編集できる view を使うこと
ワイルドカードと正規表現
ワイルドカードと正規表現は、使う記号が同じ
ものがあるが、異なる。
 ワイルドカード :
* ← 0文字以上の文字列
? ← 丁度1文字の文字列
[a-z] ← a から z の26文字のいずれかを表す
 正規表現 :
. ← 任意の文字
* ← 直前の正規表現の0回以上の繰り返しを意味する
[a-z] ← a から z の26文字のいずれかを表す
制御文字に関して
下記の通りに動作しない場合もあるので注意。
• 改行が Windows 形式だと ^M が白抜き表示
• BOM付きのUTF-8形式だと、最初の数バイトが
そのように表示される。
• タブ文字がどこにあるかを知るには、
• Lessが起動中に / (スラッシュ) キーを押下して
1. タブキーを押して Enter
2. もしくは、Ctrl + v , タブキー , Enter と順次押下する
3. もしくは、 バックスラッシュ, t , Enter と順次押下
環境変数の設定に関して
• $LESS を -N とすると最初から行番号が付加。
LESS=’-N’ # 単純に行番号付加
LESS=’-NRSX’ # -S , -R , -X の機能も付加
• EUC_JP や SHIFT_JIS の文字コードのデータを
UTF-8 に変換して less で表示できる設定にする:
export LESSOPEN=’| nkf -w %s ’
nkf が無い場合は 値を次のようにする。
'| iconv -f EUC_JP -t UTF-8 %s'
• Tips: 環境変数を設定する = (イコール)の前後に空白を入れてはいけない。
CSVファイルを読みやすくする
• column -s, -t filename.csv | less -S
less のバージョンに関して
• 初リリースは 1984年。
• 現在の Version は、487 。
less はメジャー番号.マイナー番号 の表記方式を採用してない。
• 参照 : http://www.greenwoodsoftware.com/less/
less で気になること
(私が個人的に)
• lessが、パイプで標準入力 stdin からテキストス
トリームを受け取っている場合に、それをキー
ボードからの入力(tty) とどのように分別して、
less のプロセスは受け取っているのだろうか。
• tty を stdin と区別して、データを受け取るプログラ
ムを今まで、私は作ろうとしたがうまくいったこと
がないので、less を参考にしたい。
• 内部のソースコードを読む必要があるのだろう。

Contenu connexe

Tendances

トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法Kumazaki Hiroki
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会正志 坪坂
 
OpenAI FineTuning を試してみる
OpenAI FineTuning を試してみるOpenAI FineTuning を試してみる
OpenAI FineTuning を試してみるiPride Co., Ltd.
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモAnaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモayohe
 
研究発表を準備する
研究発表を準備する研究発表を準備する
研究発表を準備するTakayuki Itoh
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)AtCoder Inc.
 
ベータ分布の謎に迫る
ベータ分布の謎に迫るベータ分布の謎に迫る
ベータ分布の謎に迫るKen'ichi Matsui
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリングmlm_kansai
 
20170618論文読み会 伊藤
20170618論文読み会 伊藤20170618論文読み会 伊藤
20170618論文読み会 伊藤Tomoki Itou
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方joisino
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」Yoshiki Shibukawa
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類t dev
 
統計的係り受け解析入門
統計的係り受け解析入門統計的係り受け解析入門
統計的係り受け解析入門Yuya Unno
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知Yuya Takashina
 
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話terurou
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向Motokawa Tetsuya
 

Tendances (20)

トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
 
OpenAI FineTuning を試してみる
OpenAI FineTuning を試してみるOpenAI FineTuning を試してみる
OpenAI FineTuning を試してみる
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモAnaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
 
研究発表を準備する
研究発表を準備する研究発表を準備する
研究発表を準備する
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
 
ベータ分布の謎に迫る
ベータ分布の謎に迫るベータ分布の謎に迫る
ベータ分布の謎に迫る
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
 
20170618論文読み会 伊藤
20170618論文読み会 伊藤20170618論文読み会 伊藤
20170618論文読み会 伊藤
 
BERT+XLNet+RoBERTa
BERT+XLNet+RoBERTaBERT+XLNet+RoBERTa
BERT+XLNet+RoBERTa
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類
 
統計的係り受け解析入門
統計的係り受け解析入門統計的係り受け解析入門
統計的係り受け解析入門
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知
 
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 

Similaire à ページャ lessを使いこなす

2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日nukaemon
 
Linuxデスクトップを便利にする秘訣、お教えします!
Linuxデスクトップを便利にする秘訣、お教えします!Linuxデスクトップを便利にする秘訣、お教えします!
Linuxデスクトップを便利にする秘訣、お教えします!Akira Taniguchi
 
Cat tool overview for CEDEC2011 Draft
Cat tool overview for CEDEC2011 DraftCat tool overview for CEDEC2011 Draft
Cat tool overview for CEDEC2011 DraftSelf Employed
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作Yuki Okamoto
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作アシアル株式会社
 
プログラミングNet framework3のお題
プログラミングNet framework3のお題プログラミングNet framework3のお題
プログラミングNet framework3のお題Kazushi Kamegawa
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 
私がPerlを使う理由
私がPerlを使う理由私がPerlを使う理由
私がPerlを使う理由Yohei Azekatsu
 
Macで快適にプログラミング
Macで快適にプログラミングMacで快適にプログラミング
Macで快適にプログラミングYusuke Sakurai
 
いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3Hiroshi Takase
 
Power shellmemo
Power shellmemoPower shellmemo
Power shellmemoytanno
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスericsagnes
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」ericsagnes
 
Scalaで行うマイグレーション ~Flyway~
Scalaで行うマイグレーション ~Flyway~Scalaで行うマイグレーション ~Flyway~
Scalaで行うマイグレーション ~Flyway~Yuto Suzuki
 
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきたLT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきたShingo Inoue
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドkeroyonn
 
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版Akira Taniguchi
 
ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)
ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)
ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)Masahito Zembutsu
 
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyOpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyMakoto Takizawa
 

Similaire à ページャ lessを使いこなす (20)

2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日
 
Linuxデスクトップを便利にする秘訣、お教えします!
Linuxデスクトップを便利にする秘訣、お教えします!Linuxデスクトップを便利にする秘訣、お教えします!
Linuxデスクトップを便利にする秘訣、お教えします!
 
Cat tool overview for CEDEC2011 Draft
Cat tool overview for CEDEC2011 DraftCat tool overview for CEDEC2011 Draft
Cat tool overview for CEDEC2011 Draft
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
 
プログラミングNet framework3のお題
プログラミングNet framework3のお題プログラミングNet framework3のお題
プログラミングNet framework3のお題
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
私がPerlを使う理由
私がPerlを使う理由私がPerlを使う理由
私がPerlを使う理由
 
Linux debug
Linux debugLinux debug
Linux debug
 
Macで快適にプログラミング
Macで快適にプログラミングMacで快適にプログラミング
Macで快適にプログラミング
 
いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3
 
Power shellmemo
Power shellmemoPower shellmemo
Power shellmemo
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
 
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
 
Scalaで行うマイグレーション ~Flyway~
Scalaで行うマイグレーション ~Flyway~Scalaで行うマイグレーション ~Flyway~
Scalaで行うマイグレーション ~Flyway~
 
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきたLT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきた
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
 
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版
 
ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)
ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)
ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)
 
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyOpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after story
 

Plus de Toshiyuki Shimono

国際産業数理・応用数理会議のポスター(作成中)
国際産業数理・応用数理会議のポスター(作成中)国際産業数理・応用数理会議のポスター(作成中)
国際産業数理・応用数理会議のポスター(作成中)Toshiyuki Shimono
 
インターネット等からデータを自動収集するソフトウェアに必要な補助機能とその実装
インターネット等からデータを自動収集するソフトウェアに必要な補助機能とその実装インターネット等からデータを自動収集するソフトウェアに必要な補助機能とその実装
インターネット等からデータを自動収集するソフトウェアに必要な補助機能とその実装Toshiyuki Shimono
 
extracting only a necessary file from a zip file
extracting only a necessary file from a zip fileextracting only a necessary file from a zip file
extracting only a necessary file from a zip fileToshiyuki Shimono
 
A Hacking Toolset for Big Tabular Files -- JAPAN.PM 2021
A Hacking Toolset for Big Tabular Files -- JAPAN.PM 2021A Hacking Toolset for Big Tabular Files -- JAPAN.PM 2021
A Hacking Toolset for Big Tabular Files -- JAPAN.PM 2021Toshiyuki Shimono
 
新型コロナの感染者数 全国の状況 2021年2月上旬まで
新型コロナの感染者数 全国の状況 2021年2月上旬まで新型コロナの感染者数 全国の状況 2021年2月上旬まで
新型コロナの感染者数 全国の状況 2021年2月上旬までToshiyuki Shimono
 
Multiplicative Decompositions of Stochastic Distributions and Their Applicat...
 Multiplicative Decompositions of Stochastic Distributions and Their Applicat... Multiplicative Decompositions of Stochastic Distributions and Their Applicat...
Multiplicative Decompositions of Stochastic Distributions and Their Applicat...Toshiyuki Shimono
 
Theory to consider an inaccurate testing and how to determine the prior proba...
Theory to consider an inaccurate testing and how to determine the prior proba...Theory to consider an inaccurate testing and how to determine the prior proba...
Theory to consider an inaccurate testing and how to determine the prior proba...Toshiyuki Shimono
 
Interpreting Multiple Regression via an Ellipse Inscribed in a Square Extensi...
Interpreting Multiple Regressionvia an Ellipse Inscribed in a Square Extensi...Interpreting Multiple Regressionvia an Ellipse Inscribed in a Square Extensi...
Interpreting Multiple Regression via an Ellipse Inscribed in a Square Extensi...Toshiyuki Shimono
 
BigQueryを使ってみた(2018年2月)
BigQueryを使ってみた(2018年2月)BigQueryを使ってみた(2018年2月)
BigQueryを使ってみた(2018年2月)Toshiyuki Shimono
 
既存分析ソフトへ
データを投入する前に
簡便な分析するためのソフトの作り方の提案
既存分析ソフトへ
データを投入する前に
簡便な分析するためのソフトの作り方の提案既存分析ソフトへ
データを投入する前に
簡便な分析するためのソフトの作り方の提案
既存分析ソフトへ
データを投入する前に
簡便な分析するためのソフトの作り方の提案Toshiyuki Shimono
 
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...Toshiyuki Shimono
 
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...Toshiyuki Shimono
 
Make Accumulated Data in Companies Eloquent by SQL Statement Constructors (PDF)
Make Accumulated Data in Companies Eloquent by SQL Statement Constructors (PDF)Make Accumulated Data in Companies Eloquent by SQL Statement Constructors (PDF)
Make Accumulated Data in Companies Eloquent by SQL Statement Constructors (PDF)Toshiyuki Shimono
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案Toshiyuki Shimono
 
新入社員の頃に教えて欲しかったようなことなど
新入社員の頃に教えて欲しかったようなことなど新入社員の頃に教えて欲しかったようなことなど
新入社員の頃に教えて欲しかったようなことなどToshiyuki Shimono
 
Guiを使わないテキストデータ処理
Guiを使わないテキストデータ処理Guiを使わないテキストデータ処理
Guiを使わないテキストデータ処理Toshiyuki Shimono
 
データ全貌把握の方法170324
データ全貌把握の方法170324データ全貌把握の方法170324
データ全貌把握の方法170324Toshiyuki Shimono
 
Macで開発環境を整える170420
Macで開発環境を整える170420Macで開発環境を整える170420
Macで開発環境を整える170420Toshiyuki Shimono
 

Plus de Toshiyuki Shimono (20)

国際産業数理・応用数理会議のポスター(作成中)
国際産業数理・応用数理会議のポスター(作成中)国際産業数理・応用数理会議のポスター(作成中)
国際産業数理・応用数理会議のポスター(作成中)
 
インターネット等からデータを自動収集するソフトウェアに必要な補助機能とその実装
インターネット等からデータを自動収集するソフトウェアに必要な補助機能とその実装インターネット等からデータを自動収集するソフトウェアに必要な補助機能とその実装
インターネット等からデータを自動収集するソフトウェアに必要な補助機能とその実装
 
extracting only a necessary file from a zip file
extracting only a necessary file from a zip fileextracting only a necessary file from a zip file
extracting only a necessary file from a zip file
 
A Hacking Toolset for Big Tabular Files -- JAPAN.PM 2021
A Hacking Toolset for Big Tabular Files -- JAPAN.PM 2021A Hacking Toolset for Big Tabular Files -- JAPAN.PM 2021
A Hacking Toolset for Big Tabular Files -- JAPAN.PM 2021
 
新型コロナの感染者数 全国の状況 2021年2月上旬まで
新型コロナの感染者数 全国の状況 2021年2月上旬まで新型コロナの感染者数 全国の状況 2021年2月上旬まで
新型コロナの感染者数 全国の状況 2021年2月上旬まで
 
Multiplicative Decompositions of Stochastic Distributions and Their Applicat...
 Multiplicative Decompositions of Stochastic Distributions and Their Applicat... Multiplicative Decompositions of Stochastic Distributions and Their Applicat...
Multiplicative Decompositions of Stochastic Distributions and Their Applicat...
 
Theory to consider an inaccurate testing and how to determine the prior proba...
Theory to consider an inaccurate testing and how to determine the prior proba...Theory to consider an inaccurate testing and how to determine the prior proba...
Theory to consider an inaccurate testing and how to determine the prior proba...
 
Interpreting Multiple Regression via an Ellipse Inscribed in a Square Extensi...
Interpreting Multiple Regressionvia an Ellipse Inscribed in a Square Extensi...Interpreting Multiple Regressionvia an Ellipse Inscribed in a Square Extensi...
Interpreting Multiple Regression via an Ellipse Inscribed in a Square Extensi...
 
Sqlgen190412.pdf
Sqlgen190412.pdfSqlgen190412.pdf
Sqlgen190412.pdf
 
BigQueryを使ってみた(2018年2月)
BigQueryを使ってみた(2018年2月)BigQueryを使ってみた(2018年2月)
BigQueryを使ってみた(2018年2月)
 
Seminar0917
Seminar0917Seminar0917
Seminar0917
 
既存分析ソフトへ
データを投入する前に
簡便な分析するためのソフトの作り方の提案
既存分析ソフトへ
データを投入する前に
簡便な分析するためのソフトの作り方の提案既存分析ソフトへ
データを投入する前に
簡便な分析するためのソフトの作り方の提案
既存分析ソフトへ
データを投入する前に
簡便な分析するためのソフトの作り方の提案
 
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...
 
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...
To Make Graphs Such as Scatter Plots Numerically Readable (PacificVis 2018, K...
 
Make Accumulated Data in Companies Eloquent by SQL Statement Constructors (PDF)
Make Accumulated Data in Companies Eloquent by SQL Statement Constructors (PDF)Make Accumulated Data in Companies Eloquent by SQL Statement Constructors (PDF)
Make Accumulated Data in Companies Eloquent by SQL Statement Constructors (PDF)
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案
 
新入社員の頃に教えて欲しかったようなことなど
新入社員の頃に教えて欲しかったようなことなど新入社員の頃に教えて欲しかったようなことなど
新入社員の頃に教えて欲しかったようなことなど
 
Guiを使わないテキストデータ処理
Guiを使わないテキストデータ処理Guiを使わないテキストデータ処理
Guiを使わないテキストデータ処理
 
データ全貌把握の方法170324
データ全貌把握の方法170324データ全貌把握の方法170324
データ全貌把握の方法170324
 
Macで開発環境を整える170420
Macで開発環境を整える170420Macで開発環境を整える170420
Macで開発環境を整える170420
 

ページャ lessを使いこなす

  • 1. ページャ less を使う 2017-05-19 下野寿之 Unixコマンドの less はいろいろなところで使います。 man でコマンドのオンラインマニュアルを見るときにも、 Python で関数のマニュアルを ? や help で表示しているときにも、 Perl で perldoc コマンドで使う時にもよく使います。 特に、ショートカットキーを覚えていると、とても便利なので、 マニュアルを見ても分かりにくいものも含めてまとめました。 全部読んでもらわなくても、5分間斜め読みしてもらって、 いろいろな便利機能を知って貰うための資料です。(補足以外7ページ)
  • 2. なぜ less を使うのか • 端末 (いわゆる黒い画面) で、いろいろな テキストファイルの中身をすぐに閲覧出来る。 • 1個であっても多数であってもすぐに閲覧できる。 • 小さなファイルでも大きなファイルでも良い。 • キーボードショートカットで多数の機能を利用可能。 • 設定をすれば、色を付けることができる。 ※ ワードなどテキスト形式以外だと不適。 ただし、バイナリ形式でも、解読などには使える場合がある。
  • 3. less の起動 • 端末で下記のように入力すれば起動する。 less ファイル名 less ファイル名1 ファイル名2 .. less ワイルドカードを使ったファイル指定 cat filename | less # (←パイプを使った場合) • ただし、less を明示的に入力しなくても、 いろいろな場面で less は起動される。 • man コマンドで Unixコマンドのヘルプ参照時 • ipython で Python言語の関数のヘルプを読む時 • perldoc で Perl言語の関数のヘルプを読む時
  • 4. less のショートカット (1) • 下記のようなヘルプの表示 : h ← 1個のキーを押下する • 閲覧の終了/ヘルプの終了 : q ← Ctrl +C では終わらない • 一画面下に進む : f または space • 半画面下に進む : d • 一画面上に戻る : b • 半画面上に戻る : u • 文字列の検索 : / (スラッシュキー) に正規表現 • 行番号の表示のオン/オフ : - , shift + n , Enter • 長い行の折り畳みのオン/オフ : - , shift + S , Enter • 次のファイル : colon(:) , n ( 数 : n という使い方もある ) • 前のファイル : colon , p • 指定正規表現を含む行のみ表示 : & に続けて正規表現 Enterキーが必要 であることは、 マニュアルから は分かりにくい。 日本語など 非ASCII文字も 検索可能
  • 5. less のショートカット (2) • 指定の行番号にジャンプ : 行番号の数に続けて g • 最終行にジャンプ : shift + g (時間がかかる場合がある) • 全体の指定パーセントの位置へ : 数 に続けて p (例,30p) • 検索による文字強調の解除 : Esc , u • 閲覧内容の保存 : -, o , space に続けてファイル名 • どんどん追加される最終行の追跡 : shift + f • タブの文字幅の調整 : - x に続けて数を指定し、Enter • ファイル情報の表示 : = (イコール) パイプで受け取った内容を 保管するのにとても便利
  • 6. 文字化けをする場合 • 日本語またはその他の場合 : • lv (エル,ヴィ) をインストールして使う。 • iconv コマンドで文字コード変換する方法もある。 • 環境変数(LCで始まるもの)をうまく設定する。 • バイナリファイルを読む場合 : • od コマンドを使う。例 : od –tax1 ファイル名
  • 7. less で注意すべき点 • 制御文字に関して : • less filename と cat filename | less で見え方が 異なる。(制御文字が見えない場合に注意) • & で特定の正規表現を含む行のみを表示する 場合に、大きなファイルだと、時間がかかる 場合がある。Ctrl+ c で中断が可能。 • バージョンに関して • & による検索機能は、2009年4月で実装。 古い less は更新が必要。
  • 9. なぜこの文書を作ったか • この文書の著者は今までの人生で、 次のことを100回くらい思ったため : 1. less を使えば良いのに。 2. less を使いこなせば良いのに。 3. less 提供ヘルプにも分かりにくい箇所がある。
  • 11. ワイルドカードと正規表現 ワイルドカードと正規表現は、使う記号が同じ ものがあるが、異なる。  ワイルドカード : * ← 0文字以上の文字列 ? ← 丁度1文字の文字列 [a-z] ← a から z の26文字のいずれかを表す  正規表現 : . ← 任意の文字 * ← 直前の正規表現の0回以上の繰り返しを意味する [a-z] ← a から z の26文字のいずれかを表す
  • 12. 制御文字に関して 下記の通りに動作しない場合もあるので注意。 • 改行が Windows 形式だと ^M が白抜き表示 • BOM付きのUTF-8形式だと、最初の数バイトが そのように表示される。 • タブ文字がどこにあるかを知るには、 • Lessが起動中に / (スラッシュ) キーを押下して 1. タブキーを押して Enter 2. もしくは、Ctrl + v , タブキー , Enter と順次押下する 3. もしくは、 バックスラッシュ, t , Enter と順次押下
  • 13. 環境変数の設定に関して • $LESS を -N とすると最初から行番号が付加。 LESS=’-N’ # 単純に行番号付加 LESS=’-NRSX’ # -S , -R , -X の機能も付加 • EUC_JP や SHIFT_JIS の文字コードのデータを UTF-8 に変換して less で表示できる設定にする: export LESSOPEN=’| nkf -w %s ’ nkf が無い場合は 値を次のようにする。 '| iconv -f EUC_JP -t UTF-8 %s' • Tips: 環境変数を設定する = (イコール)の前後に空白を入れてはいけない。
  • 15. less のバージョンに関して • 初リリースは 1984年。 • 現在の Version は、487 。 less はメジャー番号.マイナー番号 の表記方式を採用してない。 • 参照 : http://www.greenwoodsoftware.com/less/
  • 16. less で気になること (私が個人的に) • lessが、パイプで標準入力 stdin からテキストス トリームを受け取っている場合に、それをキー ボードからの入力(tty) とどのように分別して、 less のプロセスは受け取っているのだろうか。 • tty を stdin と区別して、データを受け取るプログラ ムを今まで、私は作ろうとしたがうまくいったこと がないので、less を参考にしたい。 • 内部のソースコードを読む必要があるのだろう。