Linuxの結合コマンド(paste,join)で作業効率が上がるかも?

Linuxの結合コマンド(paste,join)で作業効率が上がるかも?

作業効率にお悩みはありませんか?

工数改善に一番簡単で効果的とされているのが「コマンド入力」。Unix/Linuxの標準コマンドにおいて「ls」や「cd」といった毎日のように使うものは習慣化するものですが、逆に普段使わないけど、知っておくと便利なコマンド紹介いたします。

paste:水平結合

テキストファイル等を水平方向に加工できるコマンドで、
簡易的だがファイル同士の結合も可能。
サンプルデータ:
sample1.txt
image07

sample2.txt
image17

全行結合して1つの行として出力

image16

-s:シングル水平化
-d:区切り文字(例だとカンマ)

複数カラム水平化(これは知らなかった。。。)

image13

「-」これを3つにすれば3カラムになる

簡易ファイル結合

image08
sample2.txtには1〜6の番号が入っているのでナンバリングした感じ

join:結合

指定カラムで結合する。
pasteは単純に水平で結合するのに対してカラム番号を指定しての結合が可能。

sample1.txt
image12

sample2.txt
image14

カラムを指定の結合

image11

-t:カンマ区切りにする
-1:1つめのファイルの結合カラム指定。例ではsample1.txtの最初のカラム
-2:2つめのファイルの結合カラム指定。例ではsample2.txtの最初のカラム

まとめ

実際のところ、個人的にはほぼテキスト処理をコマンドで行うことをしていません。
この手の“テキスト内の結合を行う”ケースは複雑な物が多く、perl等で簡単なバッチを書いているのが現状です。しかし、今回の執筆で改めて調査などでは使用できると実感しました。

いずれもサラリと出てくれば作業効率が向上すると思います。仮に実用性がなかったとしても、聞かれたらすぐに答えられるぐらいが格好いいですね。
以上、覚えておきたいコマンド紹介でした。

コメント