はじめに
自分が忘れてしまいがちなLinuxコマンドの復習です。
今回はcatコマンドについて整理します。
catコマンド
1. ファイルの中身を確認する
➜ ~ cat test1.txt
test1の中身です
➜ ~ cat test2.txt
test2の中身です
2. 複数のファイルを連結して表示する
➜ ~ cat test1.txt test2.txt
test1の中身です
test2の中身です
3. 新しいファイルに内容を書き出す
➜ ~ cat test1.txt > test3.txt
➜ ~ cat test3.txt
test1の中身です
4. ファイルAの内容をファイルBに追記する
➜ ~ cat test1.txt >> test2.txt
➜ ~ cat test2.txt
test2の中身です
test1の中身です
5. ターミナル上で手入力して保存する
➜ ~ cat >> test1.txt # > の場合は上書きされる
追記しました # ctrl + D で保存・終了する
➜ ~ cat test1.txt
test1の中身です
追記しました
echoコマンドとの違い
前回復習したechoコマンドと似たような機能がありますが、明確な違いとしては、
・echoは文字列をターミナルやファイルに出力する
・catはファイルの中身をターミナルやファイル内に出力する
というように、標準出力自体は同じですが、出力元が異なります。ただ、catは確認する用途のほうが向いている気がします。
catコマンドの使いどころ
特にデプロイ時、.envファイルなど、ちょっとしたファイルの中身を確認したいときに有用だと理解しました。手軽に表示できますからね。そしてそこにちょっと書き込みたいときはecho。
行数の多いファイルの全体を見たい、または編集したいといった場合にはcatコマンドでは厳しい部分があるので、vimの出番、ということだと思います。
catコマンドの応用
ファイルの内容をささっと確認したい場合の応用技を整理しておきたいと思います。
1. head, tailと組み合わせる
➜ ~ cat test4.txt | head -n 3 # ファイルの最初の三行目を確認する
1行目:ああ
2行目:いい
3行目:うう
➜ ~ cat test4.txt | tail -n 3 # 最後の3行を確認する
8行目:くく
9行目:けけ
10行目:ここ
2. grepと組み合わせる
➜ ~ cat test4.txt | grep "お" # 「お」が含まれる行だけ表示する
5行目:おお
※grep "お" test4.txt
でも同様の結果になる様ですが、まずはパイプの使い方に慣れる事を優先。
➜ ~ cat test4.txt | grep -v "^5行目" # 5行目という文字から始まる行を除外して表示する
1行目:ああ
2行目:いい
3行目:うう
4行目:ええ
6行目:かか
7行目:きき
8行目:くく
9行目:けけ
10行目:ここ
おわりに
catは手軽にファイルの中身を確認したい時に有用で、パイプとの組み合わせに慣れるとより便利に使いこなせると理解しました。まだまだ奥が深いコマンドですが、まずはhead,tail,grepとの併用に慣れていきたいと思います。