UNIXツール


cut paste sed tr grep sort uniq

 

 cutコマンド

cutコマンドはデータからフィールドを切り出すとき使う。

(例)
 cut -c1 file
   ファイルの各行の最初の文字を切り出す。

 cut -c1-10 file
   ファイルの各行の1〜10番目の文字列を切り出す。

 cut -c20- file
 ファイルの各行の20番目から後の文字列を切り出す。

 cut -d: -f1 file
 ファイルの各行のコロン(:)で区切られた最初のフィールドを切り出す。

 cut -d' ' -f1,2 file
  ファイルの各行のスペースで区切られた最初と2番目のフィールドを切り出す。

 

 pasteコマンド

pasteコマンドは2つのデータを連結する。

(例)
  paste file1.txt file2.txt

file1.txtに
1
2
3

file2.txtに
One
Two
Three

という文字列が入っていれば

1  One
2  Two
3  Three

と表示される。

paste -d, file1.txt file2.txt

1,One
2,Two
3,Three

paste -sは1つのファイルの各行を1行に連結する。

paste -s file1.txt

1 2 3

 

 sedコマンド

sedはストリームエディタである。

(例)
 sed 's/Unix/UNIX/' file1.txt
    UnixをUNIXに変換して表示する。

 sed -n '1,2p' file1.txt
  最初の2行だけ表示する。

 sed -n '/UNIX/p' file1.txt
  UNIXが含まれる行だけ表示する。

 sed '1,2d' file1.txt
  最初の2行だけ削除する。

 sed '/UNIX/d' file1.txt
  UNIXが含まれる行だけ削除する。

 

 trコマンド

trコマンドは文字を変換するとき使うフィルタである。

(例)
 tr e x < file
  file内の文字'e'を'x'に変換する。

 tr '[a-z]' '[A-Z]' < file
  file内の小文字を大文字に変換する。

  tr ' ' '\11' < file
  file内のスペースをすべてタブに変換する。

  tr -s ' ' '\11' < file
  file内の複数スペースをすべて1つのタブに変換する。

 tr -d ' ' < file
    file内のスペースをすべて削除する。

 

 grepコマンド

grepコマンドは1つ以上のファイルからある特定の文字パターンを探索する。

(例)
 grep '[A-Z]' file
  ファイルfileから英大文字がある行を探索する。

 grep '[A-Z]...[0-9]' file
  fileから英大文字で始まり数字で終わる行を探索する。

 grep -v 'UNIX' file
  fileからUNIXが含まれない行を探索する。

 grep -l 'Unix' *.txt
  *.txtファイルからUnixが含まれるファイルを探索する。

 grep -n 'Unix' file
  'Unix'が含まれる行を行番号をつけて表示する。

 

 sortコマンド

sortコマンドは入力した行を並べ替えて出力します。

(例)
  sort < file
  fileの各行を昇順で表示する。

 sort -u < file
  fileの各行を昇順で表示する。ただし重複行は1つだけ表示する。

 sort -r < file
  fileの各行を降順で表示する。

 sort src -o dest
  srcファイルを並べ替えてdestファイルへ出力する。

 sort -n file
  fileのデータを数値とみなして数値的な大小で並び替える。

 sort +1n file
  第2フィールドを使って数値的に並び替える。

 sort +2n -t: file
  コロンで区切られた行の第3フィールドを使って並び替える。

 

 uniqコマンド

uniqコマンドは重複行を探すときに使う(ユニークな行を表示する)。

(書式) uniq in_file out_file

(例)
 uniq file
  file内の重複していない行(ユニークな行)を表示する。

 uniq -d file
  file内で重複行だけを表示する。

 uniq -c file
  ユニークな行が出現回数といっしょに表示される。