2019年11月21日木曜日

joinコマンドの使い方

コマンド概要

ファイルの中身を見て、同じ要素を持つ行を連結させるjoinコマンドについての情報を整理します。

コマンド書式
$join [オプション] ファイル1 ファイル2

オプション 説明
-j 連結するキーとなるフィールドの場所

コマンド使用例

  • 連結するフィールドの指定方法と連結結果
  • 
     $ cat join_test1.txt
     0001 aaaaa
     0002 bbbbb
     0003 ccccc
     0004 ddddd
     0005 eeeee
     $ cat join_test2.txt
     0001 AAAAA
     0002 BBBBB
     0003 XXXXX CCCCC
     0004
     0005 EEEEE
     $
     $ join -j 1 join_test1.txt join_test2.txt
     0001 aaaaa AAAAA
     0002 bbbbb BBBBB
     0003 ccccc XXXXX CCCCC ★要素の数が多ければそのまま連結する
     0004 ddddd       ★連結するデータが無ければ連結しない
     0005 eeeee EEEEE
     $
     $ join -j 2 join_test1.txt join_test2.txt   
     join: join_test2.txt:4: is not sorted: 0004
     $★2番目の要素をキーにすると、join_test2.txtの0004のデータが無いからエラーになる
    
    

cutコマンドの使い方

コマンド概要

ファイルの各行から特定のフィールドを取り出すcutコマンドについての情報をまとめます。

コマンド書式
$ cut [オプション] [ファイル名]

オプション 説明
-c 取り出す文字位置を決める
-d 区切り文字を決める
-f 取り出すフィールドを指定する

コマンド使用例

  • オプションの使い方です。スペースを区切り文字にするやり方は覚えておくと便利かもしれません。
  • 
     $ cat cut_test.txt
     123 456 789
     abc def ghi
     klm opq rst
     $
     $ cut -c 3 cut_test.txt ★各行の3文字目を表示している
     3
     c
     m
     $
     $ cut -c 5-7 cut_test.txt  ★各行の5文字目から7文字目を表示している
     456
     def
     opq
     $
     $ cut -d" " -f 2 cut_test.txt ★スペースを区切り文字と認識して2番目の情報を表示している
     456
     def
     opq
    
    

tailコマンドの使い方

コマンド概要

ファイルの末尾を表示するtailコマンドについて情報をまとめます。
ログを見るときなど使用頻度が多いコマンドです。

コマンド書式
$tail [オプション] [ファイル名]

オプション 説明
-n 末尾から指定された行数分の情報を表示します
-c 末尾から指定されたバイト数分の情報を表示します
-f ファイルの末尾に追加された行をリアルタイムで表示します

コマンド使用例

  • 「-f」オプションの使い方
  • このようにログの出力を見ながら別の画面から操作した時のログを表示させることができるので、とても便利です。

    
     $ tail -f /var/log/syslog
     Nov 21 22:17:48 raspberrypi kernel: [11778.294583] Voltage normalised (0x00000000)
     Nov 21 22:19:28 raspberrypi systemd[1]: Started Session c4 of user pi.
     Nov 21 22:19:30 raspberrypi kernel: [11880.215039] Under-voltage detected! (0x00050005)
     Nov 21 22:19:34 raspberrypi kernel: [11884.375055] Voltage normalised (0x00000000)
     Nov 21 22:19:42 raspberrypi kernel: [11892.695106] Under-voltage detected! (0x00050005)
     Nov 21 22:19:47 raspberrypi kernel: [11896.855088] Voltage normalised (0x00000000)
     Nov 21 22:21:43 raspberrypi kernel: [12013.335575] Under-voltage detected! (0x00050005)
     Nov 21 22:21:47 raspberrypi kernel: [12017.495595] Voltage normalised (0x00000000)
     Nov 21 22:22:04 raspberrypi python[305]: humidity: 40 %,  Temperat
     Nov 21 22:22:04 raspberrypi systemd[1]: Stopping Temp Service...
     Nov 21 22:22:04 raspberrypi systemd[1]: Pi-temp.service: Main process exited, code=killed, status=15/TERM
     Nov 21 22:22:04 raspberrypi systemd[1]: Pi-temp.service: Succeeded.
     Nov 21 22:22:04 raspberrypi systemd[1]: Stopped Temp Service.
     Nov 21 22:22:04 raspberrypi systemd[1]: Started Temp Service.
    
    

headコマンドの使い方

コマンド概要

ファイルの先頭部分を表示するheadコマンドについて情報をまとめます。

コマンド書式
$ head [オプション] [ファイル名]

オプション 説明
-n 指定した行数分、先頭から表示する。
-c 指定したバイト数分、先頭から表示する。

コマンド使用例

  • 先頭から3行表示する場合と8バイト表示する場合
  • 
      $ cat test.txt
     aaa
     bbb
     ccc
     ddd
     eee
     fff
     ggg
     hhh
     iii
     $
     $ head -n 3 test.txt  ★先頭から3行表示
     aaa
     bbb
     ccc
     $
     $ od -a test.txt
     0000000   a   a   a  nl   b   b   b  nl   c   c   c  nl   d   d   d  nl
     0000020   e   e   e  nl   f   f   f  nl   g   g   g  nl   h   h   h  nl
     0000040   i   i   i  nl
     0000045
     $
     $ head -c 8 test.txt  ★先頭から8バイト表示
    aaa
    bbb
     $
    
    

2019年11月20日水曜日

odコマンドの使い方

コマンド概要

バイナリファイルの内容を16進数やASCLL文字で表示してくれるodコマンドについて情報をまとめます。

コマンド書式
$od [オプション] [ファイル名]

オプション 説明
-t フォーマットを指定して出力する「c:ASCLL文字」「o:8進数」「x:16進数」

コマンド使用例

  • 「100」とかかれたテキストファイルの表示方法を変えた場合
  • 
     $ cat aaa.txt
     100  ★ファイルの中身
     $
     $ od -t c aaa.txt
     0000000   1   0   0  \n  ★アスキーで「1」「0」「0」[\n]   
     0000004
     $
     $ od -t x aaa.txt
     0000000 0a303031  ★16進数だと「\n」→0a 「0」→30 「0」→30 「1」→31
     0000004
     $
     $ od -t o aaa.txt
     0000000 01214030061 ★8進数
     0000004
     $
    
    

nlコマンドの使い方

コマンド概要

ファイルに行番号をつけて表示するnlコマンドについて情報をまとめます。


コマンド書式
$nl [オプション] [ファイル名]


オプション 説明
-b 指定した形式で本文に行番号を入れる。形式は「a:すべての行」「t:空白以外の行」

コマンド使用例

  • 表示形式を変えて行番号をつける例
  • 「-b t」のオプションはソースコードとかconfigの行数を数えるときとかに便利かもしれません。

    
     $ nl -b a test.txt
          1  aaa
          2  bbb
          3
          4  ccc
          5  ddd
          6
          7
          8  eee
     $
     $ nl -b t test.txt
          1  aaa
          2  bbb
     
          3  ccc
          4  ddd
     
     
          5  eee
     $
    
    

catコマンドの使い方

コマンド概要

ファイルの内容を表示するcatコマンドについて情報をまとめます。

コマンド書式
$ cat [ファイル名]

オプション 説明
-n 各行の左側に行番号を付与する

コマンド使用例

  • 「-n」をつけて行番号を表示する
  • 行数をつけると見やすくなりますが、ターミナル画面に収まらないサイズだと使いづらい印象です。

    
     $ cat test.txt
     aaa
     bbb
     ddd
     eee
     $ cat -n test.txt
          1  aaa
          2  bbb
          3  ddd
          4  eee
     $