今回はechoコマンド、またechoコマンド一緒に使う機会が多いリダイレクトとパイプ(|)について説明していきます。
echoコマンドは文字列を標準出力するためのコマンドです。
<基本的な使い方>
echo 文字列
<主なオプション>
-e:「\\n」で区切られたところで改行して表示する。
※実際にうつときは\\はバックスラッシュに置き換える
-n:文字列の最終行の改行をせずに表示する
リダイレクト
echoコマンドではリダイレクトをする場面が実際の業務で多く出てくると思います。
(私自身、業務でリダイレクトをすることが何度かありました。)
リダイレクトは標準出力先をファイルなどに変更するときに使います。
リダイレクトは「>」や「>>」で表します。
Linuxではファイルに文字列を書きこんだり、テキストを編集するにはvimなどのエディタを使うことが一般的です。
ただ、数文字や1~2行のテキストを書き込むのにその都度vimでファイルを編集するのは手間になってきます。
そのようなときにリダイレクトを使用すると、vimを開かず、コマンドラインからコマンドを実行するだけで済むので便利です。
リダイレクトはechoなどのコマンドと組み合わせて使います。
<使用例>
#example.txtの中身を確認する
cat example.txt
apple
#example.txtに文字列を追記する
echo banana >> example.txt
cat example.txt
apple
banana
リダイレクトをする際に、「>」をした場合はもともとあった文字が上書きされて消えてしまうので注意が必要です。
あくまで既存のファイルに追記したいという場合には、必ず「>>」を使用しましょう。
パイプ
リダイレクトの活用方法としてパイプ(|)を使うことがあります。
パイプはコマンドによる標準出力を別のコマンドに橋渡しをするものです。
パイプを用いると、1行で複数のコマンドをまとめて実行できます。
<基本的な使い方>
コマンド1 | コマンド2 | コマンド3 |.....
また、出力を別のコマンドの引数として扱いたい場合はxargsコマンドを使用します。
xargsは基本的にパイプと一緒に使用されます。一つ目のコマンドで出力した結果をパイプで繋いでxargsで引数として扱い、別のコマンド実行します。
<使用例>
cat data.txt
apple
grape
lemon
# catの結果をxargsに引数として渡す
cat data.txt | xargs touch
ls
data.txt apple grape lemon
# 任意の文字列に当てはまるファイルを表示
find -type f | xargs grep "apple"
./data.txt:apple
# aから始まるファイルをすべて削除
find a* | xargs rm