【Linux】catコマンド ~ ファイルの結合 / 閲覧 ~

■ はじめに

ファイルを結合する必要がでてきたので、
catコマンド で簡単にできたので、メモしておく。

目次

【1】catコマンド
【2】使い方
 1)閲覧
 2)ファイル結合
 3)空ファイルを作成する
【3】サンプル
 例1:ファイル結合
 例2:指定フォルダのテキストを全て結合するシェル
【4】cat関連のコマンド
 1)tacコマンド
 2)batコマンド

【1】catコマンド

* ファイルを連結して標準出力に出力する
 => 閲覧でも使える

【2】使い方

1)閲覧

cat [見たいファイルパス]

2)ファイル結合

cat [ファイル1] [ファイル2] ...

3)空ファイルを作成する

cat /dev/null > [出力する空ファイルパス]

https://www.koikikukan.com/archives/2014/11/20-005555.php

【3】サンプル

例1:ファイル結合

# 元データ1
$ cat cat1.txt
Hello world1
Hello world2

# 元データ2
$ cat cat2.txt
Hello world3
Hello world4

# 1)結合
$ cat cat1.txt cat2.txt
Hello world1
Hello world2
Hello world3
Hello world4

# 2)結合したものをファイル出力
$ cat cat1.txt cat2.txt > result.txt

# 出力ファイルを確認
$ cat result.txt
Hello world1
Hello world2
Hello world3
Hello world4

例2:指定フォルダのテキストを全て結合するシェル

#!/bin/bash

OUTPUT="./out.txt"

# 空ファイル作成
# touch out.txt でもOK
cat /dev/null > ${OUTPUT}

for file in `ls ./cat/*.txt`;
do
  cat ${OUTPUT} ${file} >> ${OUTPUT}
done

echo "Result is ..."
cat ${OUTPUT}

出力結果例

$ ./cat.sh
cat: ./out.txt: input file is output file
cat: ./out.txt: input file is output file
Result is ...
Hello world1
Hello world2
Hello world3
Hello world4
Hello world5
Hello world6

【4】cat関連のコマンド

1)tacコマンド

https://dk521123.hatenablog.com/entry/2021/08/09/000000

より抜粋

* 入力の行で逆順にして出力する
 => 繰り返しの逆にする場合に利用
 => catコマンドの逆だから「tac」コマンド

https://hydrocul.github.io/wiki/commands/tac.html
逆順の場合 (tacコマンドを利用)

for 変数 in 引数1 引数2do
  処理
done | tac

2)batコマンド

* catコマンドの高機能コマンド

https://qiita.com/r12tkmt/items/a194dc61b76ddc92bdb7

インストール
https://github.com/sharkdp/bat#installation

sudo apt install bat

関連記事

大きいファイルを扱う際のコマンド
https://dk521123.hatenablog.com/entry/2020/06/12/000000
ファイルの内容を表示するコマンド
https://dk521123.hatenablog.com/entry/2016/08/08/235934
シェル ~ 基本編・ループ while / for etc ~
https://dk521123.hatenablog.com/entry/2021/08/09/000000
ファイルへの書き出し
https://dk521123.hatenablog.com/entry/2021/08/14/000000