UNIXツール
cut paste sed tr grep sort uniq
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コマンドは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 '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 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コマンドは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 < 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 in_file out_file
(例)
uniq file
file内の重複していない行(ユニークな行)を表示する。
uniq -d file
file内で重複行だけを表示する。
uniq -c file
ユニークな行が出現回数といっしょに表示される。