WAVE Log
join

ファイルを結合する

キーとなる列は昇順に並べておく。

# cat list01.txt 10 aa 30 bb 40 cc 70 dd 90 ee

# cat list02.txt 20 VV 30 WW 50 XX 60 YY 70 ZZ

に対して、単純に二つのファイル名を並べて join すると、キー列の項目において、両方のファイルに存在するもののみ表示する。

# join list01.txt list02.txt 30 bb WW 70 dd ZZ

オプションを使用すると、

# join -a 1 -1 1 -2 1 -o 0 1.2 2.2 -e 'NULL' list01.txt list02.txt 10 aa NULL 30 bb WW 40 cc NULL 70 dd ZZ 90 ee NUL

左から、
join コマンド
-a 1:一つ目のファイル(list01.txt)の行は全て表示する。
-1 1:一つ目のファイル(list01.txt)の1列目をキーとする。
-2 1:二つ目のファイル(list02.txt)の1列目をキーとする。
-o:出力する列番号を指定する。
0:キーを表示。
1.2:一つ目のファイル(list01.txt)の2列目を表示。
2.2:二つ目のファイル(list02.txt)の2列目を表示。
-e 'NULL':指定したフィールドがなければ任意の文字列を表示する。(NULLを表示する)

kill

プロセスおよびジョブを終了させる

プロセスID pid のプロセスを終了する。

# kill pid

だめなら、強制終了。

# kill -9 pid

less

メッセージやテキストファイルを1画面ずつ表示する

# less file.txt

-N : 行番号を表示する

ln

シンボリックリンクの作成

# ln -s リンク元 リンク先

オプション -s :作成するリンクがシンボリックリンクであることを表す
リンク元とリンク先の順番は cp コマンドなどと同じ

locate

ファイルやディレクトリを検索する

データベースから検索するので高速

# locate [file]

※ locate ではデータベース更新後に作成されたファイルやディレクトリは検索できない。データベースを再更新するには updatedb コマンドを実行する。

# updatedb

ls

ファイルの一覧表示

自分がアクセスしているディレクトリ内のファイルを一覧表示する

# ls

隠しファイルを含むすべてのファイルを表示する

# ls -a

属性も表示させる

# ls -l

すべてのファイルの情報を詳細に表示する

# ls -al

ファイル名の数字部分を自然順序でソート(ゼロ埋めされていなくても正しくソートされる)

# ls -v

mkdir

ディレクトリを作る

ディレクトリ (test) を作る

# mkdir test

存在しない test ディレクトリ内に sub ディレクトリを作成する

# mkdir -p test/sub

-p :ディレクトリが存在していてもエラーを返さない。必要に応じて親ディレクトリを作成する。

mv

ファイル,ディレクトリの名前変更と移動

名前を変更する。(test1→test2)

# mv test1 test2

移動する。(test1→user/newdir/test1)

# mv test1 user/newdir

オプション
-f :同名ファイルがある時も上書きの確認の問い合わせなく上書きをする

nkf

ファイルの文字コードを変換する

file をEUCコードで標準出力。

# nkf -e file

file をEUCコードにして file2 の名前で保存。

# nkf -e file > file2

注)もとのファイルと、出力ファイルを同じ名前にしない

file の文字コードを UTF8コード,改行コードをLFにして file2 の名前で保存。

# nkf -wLu file > file2

主なオプションは
-j : JISコードで出力
-e : EUCコードで出力
-s : シフトJISコードで出力
-w : UTF8コードで出力
※オプションを指定しない場合 -j になる。

改行コードを変更するオプションは
-Lu : unix(LF)の改行コードに変換
-Lw : windows(CR+LF)の改行コードに変換
-Lm : mac(CR)の改行コードに変換

入力する文字コードを指定するオプションは
-J : 入力がJISコード
-E : 入力がEUCコード
-S : 入力がシフトJISコード
-W : 入力がUTF8コード

※指定しなくても自動判定が効くが、誤判定のリスクを避ける意味でも、入力する文字コードが分かっている場合は明示的に指定した方がいい。

nl

行番号を追加する

# nl test.txt 1 aaa 2 bbb 3 ccc

-nオプション(行番号の表示形式の変更)
ln 左詰め
rn 右詰め(デフォルト)
rz 右詰めで0で埋める

# nl -n ln test.txt 1 aaa 2 bbb 3 ccc

# nl -n rz test.txt 000001 aaa 000002 bbb 000003 ccc

-sオプション(行番号とファイルの内容の間の区切り文字を変更)
デフォルトの区切り文字はTAB

# nl -s':' test.txt 1:aaa 2:bbb 3:ccc

-wオプション(行番号の長さを変更)

# nl -w3 -n rz test.txt 001 aaa 002 bbb 003 ccc