【Linux】コマンドを繋げるパイプ(縦棒|)のお話
Photo by Michael Dziedzic on Unsplash
あけましておめでとうございます。フジボウルの高橋希望です。
正月ボケでまだまだ仕事に本腰を入れれず、苦労して過ごしています。。そろそろ本気で業務に当たらないといけないですね
そんな中、本日はlinuxを操作する際にとても便利なパイプのお話をしようと思います。
パイプとは?
パイプとは「|」のことをさしていて、コマンドAを実行した際の標準出力をコマンドBの標準入力として受け渡し、コマンドBを実行できるようになるものです。ま、複数コマンドをつなぎ合わせることができるものと覚えておいてください。
基本的な使い方
実際にどのように使うかは下記のような使い方になります。
$ <command1> | <command2> | .....
例えば、catで複数のlogファイルの中身を表示させ、その中から「hoge」の文字列を持つ行を抽出する場合
$ cat ./*.log | grep hoge
のようにします。例えばaccess.logから特定の時間帯だけのログを抽出する際に便利ですね。
自分的よく使うパターン
# 5段階下のディレクトリまでをみて容量が5G以上のディレクトリを表示する
$ sudo du -g -x -d 5 / | awk '$1 >= 5{print}'
# ホームディレクトリのphpファイル内からhogeの文字列を検索
find ~/ -name "*.php" | grep -rn "hoge"
# ホームディレクトリ内のhogeディレクトリ内にあるテキストファイルをtar.gzにまとめる
find ~/hoge -name '*.txt' -type f -print0 | xargs -0 tar -cvzf hoge_txt.tar.gz
などなど