目次:


いくつかの基本的な便利なコマンド
シェルスクリプトの基本的な解説とforループの例を紹介しましたが、今までシェルスクリプトガイドが見当たらなかった場合は、それらの記事を必ずチェックしてください。
コマンドラインは多くの理由から素晴らしいですし、リダイレクトは最も顕著なものの1つです。あなたがさらなる行動を取るために、または何かのためにそれを使用するために、すべてのコマンドの出力を書き留めて再現しなければならない場合、私たちはずっと前に狂っていました。リダイレクションでは、その出力を使用して保存したり、すぐに別のコマンドの入力として使用したりできます。また、ファイルを他のコマンドの入力として使用することもできます。
先に進む前に、さまざまな場所で使用できるいくつかの基本コマンドについて説明します。
エコー - このコマンドは、引数の全体を出力としてコマンド行に出力(表示)するだけです
echo argument with spaces


ネコ - このコマンドは、テキストファイルの内容を出力として表示します。
cat file_to_be_read
このテキストファイルをnanoで作成したとしましょう:


grep pattern file

出力のリダイレクト
コマンドの出力をファイルにリダイレクトするには、特殊文字である大なり記号(>)を使用します。
私たちのリストを変更しようか?次のコマンドを入力します。
echo pepperoni > list

また、 "list"の以前の内容が削除されていることにも注意してください。もう一度やってみる:

echo yellow peppers >> list


そこに行く。私はあなたが非常に多くのオタクがコマンドラインを使ってリストやそのようなことをする理由を知ることができると思うが、それはさらに良くなる。
コマンドの出力を取り出してファイルに入れてみましょう:
ls –al / > ~/rootlist

配管、または連鎖
パイプはパイプを使用しているのでその名前が付けられます(ほとんどのキーボードでは |キーと共有されます)。基本的には、1つのコマンドの出力を受け取り、それを別のコマンドに直接送ります。このように、非常に特殊な出力を得るために長いコマンドチェーンを作成することができ、grepのようなコマンドには非常に便利です。

ご覧のとおり、grepでは大文字と小文字が区別されます。大文字小文字を無視するために、 "-i"フラグを使用することができます。

入力のリダイレクト
小文字の記号(<)を使用すると、コマンドのファイルから入力を取得することもできます。
cat < list

現在の "list"ファイルから "pep"を含む単語を "revisions"という新しいファイルにフィルタリングしたいとしましょう。
grep pep < list > revisions

grep pep < list | sort > revisions

sortコマンドを説明するために、次の例を見てみましょう:

シンプルなスクリプト
次の形式のスクリプトを作成しましょう:
script searchterm listfile
この用語は、grepを使ってリストファイルを検索し、結果をソートして別のファイルに出力します。



そこに行く!正規表現の規則を学ぶほど、より正確に検索コマンドをまとめることができます。そして、引用符で妥当なものは、あなたの最初の引数と置き換えることができます!
並べ替えが行われる限り、アルファベット順で並べ替える以上のことができます。次のコマンドのいくつかのマニュアルページを見てください:
- tsort - より高度なトポロジカルソート機能
- tr - 特定の文字を他の文字にマッピングし、それらの間で転記することができます。
- uniq - ユニークでない(読み取り:複製)
- awk - ファイル名のフィールドを区切るために使用できる本当に高度なテキスト処理言語/関数
- cut、paste / join - コマンドを使ってテキストファイルからフィールドを分離し、新しいデータをカラムに追加するのに便利です。
- look - grepのような検索は行いますが、ルックアップには辞書ファイル(ユーザ指定可能)を使用します
- wc - 単語数、行数、文字数などを得ることができます
スクリプトのようにコマンドライン上で役に立つことができる今日の基本を少し見てきました。テキストベースのデータは、私たちが毎日使っているものの中心にあることが多いため、それを扱い、検索し、操作することが重要です。
あなたの好きなスクリプトは何ですか?テキストベースのファイル用の特別なスクリプトはありますか?あなたがコメントで知っていることを共有してください!