全力で怠けたい

怠けるために全力を尽くしたいブログ。

cat コマンドはファイルと標準入力を連結したり連結する順番を指定できる。

cat コマンドは複数のファイルだけじゃなくて標準入力も連結できるのをメモしておく。

cat コマンドはファイルの内容を標準出力に表示するのに使うことが多い気がするけど、たいがいは単一のファイルの内容を標準出力に出力してる気がする。 実は cat コマンドは man page を見ると concatenate and print files みたいに書いてあって、ファイルを表示したり複数のファイルを連結するのに使える。

複数のファイルを連結するのはこんな感じに使える。

# 1つめのファイル
$ cat abc.txt
a
b
c

# 2つめのファイル
$ cat xyz.txt
x
y
z

# 2つのファイルを連結する
$ cat abc.txt xyz.txt
a
b
c
x
y
z

cat コマンドの引数のファイルの並び順を入れ替えると cat コマンドが標準出力に出力する順番も入れ替わる。

$ cat xyz.txt abc.txt
x
y
z
a
b
c

あと cat コマンドは標準入力から読み込んで標準出力に出力することができる。

こんな感じで標準入力から読み込んだものを abc.txt の内容より前に出したり abc.txt の内容のあとに出すことができる。 データの入力元が標準入力からとファイルからとの2つがあるとき、cat コマンドを使うとどちらの入力を先に出力するかを制御できる。

$ seq 1 3 | cat - abc.txt
1
2
3
a
b
c

$ seq 1 3 | cat abc.txt -
a
b
c
1
2
3