Cat_(UNIX)
[Wikipedia|▼Menu]

.mw-parser-output .monospaced{font-family:monospace,monospace}cat(キャット)はUNIXの標準コマンドであり、ファイルを連結させたり表示したりするのに用いる。catは連結することを意味する「catenate」の略である。
仕様

Single UNIX Specificationでは、catは引数で指定されたファイルの内容を指定された順番に標準出力に書き出すと規定している。ファイル名のリストに「-」が含まれていた場合、catはリストのその時点で標準入力からデータを読み込む。ファイル名が指定されなかった場合もcatは標準入力から読み込む。
拡張

BSD版のcatとGNU版のcatはどちらも次のオプションを指定できる。

-b(GNUでは--number-nonblankとも):空白でない行の数を数え、行番号を付加する。

-n(GNUでは--numberとも):すべての行の数を数え、行番号を付加する。

-s(GNUでは--squeeze-blankとも):隣接する空白行を除く。

-v(GNUでは--show-nonprintingとも):表示できない文字も表示する。ただしタブと改行文字を除く。

-t(BSD)または-T(GNU):-vと同じだが、タブを^Iと表示する。

-e(BSD)または-E(GNU):-vと同じだが、改行文字を$と表示する。

実例

コマンドコマンドの説明
$ cat file1file1の内容を表示する
$ cat file1 file2file1およびfile2の内容を連結し、端末上にその結果を表示する
$ cat file1 file2 > file3file1およびfile2の内容を連結し、ファイルfile3にその結果を出力する
$ cat > newfile新規ファイルnewfileを作成もしくは上書きして、入力したい内容を打ち込み、CTRL+Dコマンドで終了する。入力された内容は新規ファイルに書き込まれる。
$ cat -n file1 file2 > file3file1およびfile2の内容を連結し、ファイルfile3にその結果を行番号とともに出力する
$ cat file1 > file2file1の内容をfile2にコピーする
$ cat file1 >> file2file1の内容をfile2に追加する
$ cat file1 file2 file3 。sort > test4file1およびfile2およびfile3の内容を連結し、連結された行を頭文字の順に並べ替え、その内容を新規ファイルに書き出す。
$ cat file1 file2 。lessfile1およびfile2の内容を連結し、lessコマンドを実行する

UNIXの文化
ジャーゴンファイルでの定義

ジャーゴンファイルのバージョン4.3.3には、catの定義として次のように記されている ⇒[1]
ファイル全体をスクリーンまたは流し台か何かにとめどなく吐き出すこと(類: ⇒blast)。

転じて、膨大なデータを注意深く目を通すこともせずに準備ができていない目標に向かって吐き捨てること。使用例:馬鹿げている。UNIX以外の場所で使われることは稀である。参照: ⇒dd、 ⇒BLT

UNIXファンの間では、cat(1)はユーザインターフェースデザインのよい手本とされている。catはファイルの内容に空白やヘッダのような余分なものを一切付加せずに提供してくれるためであり、またテキストファイルのみならずどんな種類のデータに対しても正しく動作するためだ。

UNIX嫌いの間では、cat(1)は悪いユーザインターフェースデザインの ⇒正統な手本とされている。それはこの悲しいまでにわかりづらい名称のためである。catは、ファイルの連結(concatenate)に使うよりもむしろ標準出力への出力に使われることの方がはるかに多い。後者の使用法に対するcatという名称は、ちょうどLISPの ⇒cdrのように非直感的である。
catコマンドとUUOC

UUOCは「無駄なcatの使用(Useless Use of cat)」の略である。Usenetのcomp.unix.shellに投稿された賢者の観察によると,catの役割はファイルを連結することである。もしファイルが1つしかないのであれば、何かと連結しようとするのは時間と手間の無駄でしかない。にもかかわらず、次のような使用をよく見かける。$ cat file 。somecmd 引数……

代わりに次のように書けば簡単である。$ <ファイル somecmd 引数……

次も同じであるが、より古典的な方法である。$ somecmd 引数…… <ファイル

1995年からUUOCの授賞が、主にRandal L. Schwartzによって時々行われている。イギリスハッカーたちの間では、UUOCに挙げられた例を修正することはmoggyが猫(cat)を表すことからdemoggificationと呼ばれる。
関連項目

GNU Core Utilities

フィルタ (ソフトウェア)

外部リンク

cat(1)
- Linux JM Project

cat(1) - OpenBSD(英語)

cat(1) - HMUGリファレンスマニュアル(英語)

cat(1) - Debianリファレンスマニュアル(日本語)

cat Single UNIX Specificationによる規定(英語)

cat man page(GNU coreutils、英語)

Useless Use of Cat Award(英語)










Unixコマンド
ファイルとファイルシステム管理

cat

chattr(英語版)

chmod

chown

chgrp

cksum

cmp

cp

dd

du

df(英語版)

file

fsck

fuser(英語版)

ln

ls

lsof

mkdir

mount

mv

pax

pwd

rm

rmdir

size

split

tee

touch

type(英語版)

umask(英語版)

プロセス管理

at

bg

chroot

cron

fg

kill

killall

nice

pgrep

pidof

pkill

ps

pstree(英語版)

reboot

shutdown

time

top

ユーザ管理/環境

clear

env

exit

finger

history(英語版)

id

logname(英語版)

mesg

passwd

su

sudo

uptime

talk

tput(英語版)

uname

w

wall

who

whoami

write

テキスト処理

awk

banner

basename

comm(英語版)

csplit(英語版)

cut

diff

dirname

ed

ex(英語版)

fmt

fold(英語版)

head

iconv

join(英語版)

less

m4

more

nkf

nl

paste(英語版)

patch

printf(英語版)

read(英語版)

sed

sort

spell(英語版)

strings

tail

tr

troff

uniq

vi

wc

xargs

yes

シェルビルトイン

alias

cd

echo

test(英語版)

unset

wait

通信

dig

host(英語版)

ifconfig

inetd

ip (iproute2)


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:13 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef