catコマンド[Linux]

Linux Linux

catコマンド

「cat」は「連結する」を意味するconcatnateの略である。


cat ファイル名
↑でファイルの中身が端末に出力されます。

[cat@ang.tokyo]$cat test.txt 
test1
test2
test3

ファイルの中身が大容量の時は滝のように出力されてしまい、下の方しか見えないので、ファイルの中身を見たいだけの時は、「less」とか「view」を使います。


リダイレクト「>」を使うとファイル(左)の中身をファイル(右)へ上書きします。もともとファイル(右)にあった中身は消えてしまうので気をつけましょう。


[cat@ang.tokyo]$cat left.txt 
left
[cat@ang.tokyo]$cat right.txt 
right
[cat@ang.tokyo]$cat left.txt > right.txt 
[cat@ang.tokyo]$cat right.txt 
left

「>」ではなく「>>」とすると、上書きではなくもともとあった中身の下に追加します。


[cat@ang.tokyo]$cat left.txt 
left
[cat@ang.tokyo]$cat right.txt 
right
[cat@ang.tokyo]$cat left.txt >> right.txt 
[cat@ang.tokyo]$cat right.txt 
right
left


複数のファイルを連結して出力したり新しいファイルを作ることもできます。



[cat@ang.tokyo]$cat left.txt 
left
[cat@ang.tokyo]$cat right.txt 
right
[cat@ang.tokyo]$cat left.txt right.txt 
left
right

[cat@ang.tokyo]$cat left.txt right.txt > concatnate.txt
[cat@ang.tokyo]$cat concatnate.txt 
left
right

cat オプション

-n(–number) 行番号をつけて出力する
-b (–number-nonblank) -nとは違いblank空白行)には番号をふらない
-s(–squeeze-blank) 連続した空白行を1行の空白行にまとめる
-E(–show-ends) 各行の最後に”$”を付けて出力
-T (–show-tabs) タブを”^I”に置き換えて出力

cat -n ファイル名 #行番号をつけて出力する



[cat@ang.tokyo]$cat dragonball.txt 
孫悟空
神龍
亀仙人



ウーロン
クリリン
ヤジロベー
ランファン
[cat@ang.tokyo]$cat -n dragonball.txt 
     1	孫悟空
     2	神龍
     3	亀仙人
     4	
     5	
     6	
     7	ウーロン
     8	クリリン
     9	ヤジロベー
    10	ランファン


cat -b ファイル名 #-nとは違いblank空白行)には番号をふらない



[cat@ang.tokyo]$cat -b dragonball.txt 
     1	孫悟空
     2	神龍
     3	亀仙人



     4	ウーロン
     5	クリリン
     6	ヤジロベー
     7	ランファン


cat -s ファイル名  #連続した空白行を1行の空白行にまとめる



[cat@ang.tokyo]$cat -s dragonball.txt 
孫悟空
神龍
亀仙人

ウーロン
クリリン
ヤジロベー
ランファン
[cat@ang.tokyo]$cat -ns dragonball.txt 
     1	孫悟空
     2	神龍
     3	亀仙人
     4	
     5	ウーロン
     6	クリリン
     7	ヤジロベー
     8	ランファン


cat -E ファイル名  #各行の最後に $ を付けて出力



[parallels@localhost work]$ cat dragonball.txt 
かめはめ波
じゃんけんパンチ

狼牙風風拳


排球券
[parallels@localhost work]$ cat -E dragonball.txt 
かめはめ波$
じゃんけんパンチ$
$
狼牙風風拳$
$
$
排球券$

私のMACの端末には-Eオプションが使えなかったので、VMのCentOSへ移動しました。


cat -T ファイル名  #タブを”^I”に置き換えて出力



[parallels@localhost work]$ cat sandaibusho.txt 
織田	信長
豊臣	秀吉
徳川	家康
[parallels@localhost work]$ cat -T sandaibusho.txt 
織田^I信長
豊臣^I秀吉
徳川^I家康

コメント