C言語のプログラムやMAYAのデータファイルのようなテキストファイルの中身を表示するにはviなどを使用しても良いが、ファイル表示用のコマンドを使った方が誤ってファイルの中身を書き換えたりするトラブルを避けることができる。
以下の2つのファイルをホームディレクトリの下のunix2の中にコピーする。
more と lessはテキストファイルの中身を表示するためのコマンドである。
# more file1 <- moreでfile1を表示
# less file1 <- lessでfile1を表示
覚えておくと良いmore, lessの基本的なコマンドは以下の通り。
小さなファイルの場合は、catコマンドで表示するという方法でも良い。
ただし、このコマンドはファイルの表示だけでなく色々な目的のために使用することがある。
例えば、2つ以上のファイルを1つのファイルにまとめる時などである。
以下の例ではfile1とfile2をfile3にまとめている。
(file3の中身はfile1とfile2が合体したものになって入る。)
# cat file1 file2 > file3
head と tailはファイルの最初と最期の部分だけを表示する単純なコマンドである。
これだけだと、あまり役にたたないが下の例題のように組み合わせると色々なことができるようになる。
# head file1 <- file1の最初の10行を表示 # head -20 file1 <- file1の最初の20行を表示
# tail file1 <- file1の最後の10行を表示 # tail -15 file1 <- file1の最後の15行を表示
シェルを使うと複数のコマンドを リダイレクション、 パイプ などと組み合わせることによって 一つ一つのコマンドではできないことができるようになる。
あるファイル(file1)の11行目から20行目までだけを表示するにはどのようにすれば良いか。
headと
tailの2つのコマンドだけを知っている時、
この例題を解くためにどうすれば良いか考えてみる。
この2つのコマンドのどちらか一つでは目的を達成できない。
そこで、この2つのコマンドを組み合わせることによってできないかと考えてみる。
そのためには以下のように考えれば良いだろう。
上の考え方をリダイレクションを使って実行すると以下の様になるだろう。
# head -20 file1 > tmp # tail tmp
これでも良いが、tmpという余計なファイルができてしまうことと、
コマンドを2回にわけて打ち込むという手間がかかる。
そこで、あるコマンドの出力を別のコマンドの入力として渡すときには、
パイプを使うと2つのコマンドを一つにまとめることができる。
# head -20 file1 | tail