🐮
【Linux入門 #3】テキスト処理
はじめに
【Linux入門 #1】ファイルとディレクトリ
【Linux入門 #2】コマンド操作の基本
の続きです。
wcコマンド
入力ファイルの行数・単語数・バイト数を数えることができる
// 行数 単語数 バイト数 ファイル名が表示される
$ wc file1
11 19 253 file1
// 行数を表示
$ wc -l file1
11
// 単語数を表示
$ wc -w file1
19
// バイト数を表示
$ wc -c file1
253
sortコマンド
行を並び替えることができる
// アルファベット順にソート
$ sort file1
Akita
Chiba
Kagawa
Nagano
// 降順(逆順)にソート
$ sort -r file1
Nagano
Kagawa
Chiba
Akita
// 数値順にソート
$ sort -n number.txt
1
2
3
4
5
uniqコマンド
重複行を取り除く
// file1の内容を確認
$ cat file1
Hokkaido
Hokkaido
Akita
Akita
Miyagi
Miyagi
Akita
// 同じ行が連続している場合だけ重複を取り除ける
$ uniq file1
Hokkaido
Akita
Miyagi
Akita
// ソートすれば取り除ける
$ sort file1 | uniq
Hokkaido
Akita
Miyagi
cutコマンド
入力行の一部を切り出して出力する
// cut -d <区切り文字> -f <フィールド番号> <ファイル名>
// 「,」で区切った、3番目のフィールドを表示する
$ cut -d , -f 3 file.csv
trコマンド
文字を置き換えることができる
// iをAに置き換える
$ cat file1 | tr i A
HokkaAdo
AkAta
MAyagA
// 小文字から大文字に変換
$ cat file1 | tr a-z A-Z
HOKKAIDO
AKITA
MIYAGI
// 文字を削除
$ cat file1 | tr -d "i"
Hokkado
Akta
Myag
// ファイル名を指定するとエラーになる(標準入力に対して作用しないため)
$ tr file1 A-Z a-z
usage: tr [-Ccsu] string1 string2
tr [-Ccu] -d string1
tr [-Ccu] -s string1
tr [-Ccu] -ds string1 string2
tailコマンド
末尾を表示する
// 末尾を表示
$ tail index.html
</body>
</html>
// 末尾1行を表示
$ tail -n 1 index.html
</html>
// 先頭1行を表示
$ head -n 1 index.html
<!DOCTYPE html>
diffコマンド
差分を表示する
// file1の3行目の後に file2の4,5行目が追加された
$ diff file1 file2
3a4,5
> Sendai
> Sizuoka
記号 | 内容 |
---|---|
<範囲> | 何行目かを示している |
<範囲1>a<範囲2> | 1つ目のファイルの<範囲1>の後に2つ目のファイルの<範囲2>が追加された |
<範囲1>c<範囲2> | 1つ目のファイルの<範囲1>が2つ目のファイルの<範囲2>に変更された |
<範囲1>d<範囲2> | 1つ目のファイルの<範囲1>が2つ目のファイルで削除された |
Discussion