web-dev-qa-db-ja.com

パイプとgrepを使用した非常に基本的なH / Wの質問

F1a.txtF1b.txtの2つのテキストファイルがあり、基本的に同じデータ(ドライバーの姓と国籍)が含まれています。例えば:

Hamilton       GBR
Alonso         SPA

これら2つのファイルをF1_drivers.txtに連結しました。次の方法を教えてください。

  1. パイプを使用して、英国式のF1a.txtおよびF1b.txtのドライバーをアルファベット順に表示します。

  2. listingという名前のファイルに書き込まれた、現在のディレクトリ内のファイルの長いリストを出力します。

  3. 新しいディレクトリに切り替えて、そのディレクトリ内のファイルの長いリストをlistingに追加します。

  4. F1で始まり.txtで終わるすべてのファイルの文字列GERのgrep。

  5. #4を実行しますが、出力をcatにパイプして、grepout.txtという名前の出力を含むファイルを作成します。

役立つ基本的な情報が提供されましたが、どこに行けばいいのかわかりません。

1
Master B
  1. cat F1a.txt F1b.txt | grep British | sort -d
    catを使用して* nixシステム上のファイルの内容を読み取ります。
    次に、パイプ、文字|を使用して、catからの出力をgrepにフィードします。
    次に、コマンドgrepを使用してcatからの入力でWord Britishを検索し、grepが出力をフィルタリングして適切な行を表示します。
    次に、別のパイプを使用して、grepからの出力をsortにフィードします。これにより、おそらく推測できるように、入力が並べ替えられます。 -d引数を使用して、アルファベット順に並べ替えます。
  2. ls -al > listing
    これを行うには、「>」のシェルI/Oリダイレクト演算子を使用する必要があります。
    それを使用し、その後にファイルを使用すると、BASHは次のようになります。
    STDOUTまたは標準出力(コマンドラインまたはツール出力)を使用します。
    そのパスでファイルが存在する場合は、STDOUTからの新しいデータで上書きされます。それ以外の場合は、ファイルが作成され、STDOUTからのデータが書き込まれます。
    作業ディレクトリの情報を提供するlsを取得し、それに-al引数を入力します。これにより、基本的に-allfilesを-longlisting形式で表示するように指示されます。
    次に、>リダイレクト演算子を使用して、lsの出力をファイルリストに配置します。
  3. cd a/directory/
    ls -al >> /path/to/listing
    cdはディレクトリを切り替えます。 cd a/directory /とは、ランダムなディレクトリを選択してコマンドで使用することを意味します。本当にやりたいことでない限り、文字通りa/directory /にcdするのではありません。
    次に、前のlsコマンド(remember、-allfiles、-longformat)を再利用し、別のシェルリダイレクトコマンドを使用します。今回は>>を使用します。これは、STDOUTを取得して、後で指定されたファイルに追加し、作成したファイルリストに送信します。
  4. cat F1*.txt | grep GER
    これでは、1番目と同じことを行っています。つまり、catを使用してファイルからデータを読み取り、grepを使用してファイルを検索します。ただし、さらに別の新しいシェル演算子を使用しています。今回は、一般にワイルドカードと呼ばれるアスタリスクです。 F1 * .txtがシェルに指示するのは、基本的に次のとおりです。
    現在のディレクトリで、別のディレクトリを指定していないので、すべてのファイルを調べます。 F1で始まり、その後に何かがあり、.txtで終わる場合は、そのファイル名を返します。これを行うと、catには複数のファイルが与えられ、その役割を果たします。つまり、指定されたファイルの内容をSTDOUTに連結します。
    次に、前に行ったように、パイプを介してSTDOUT内のすべての情報をgrepにフィードし、GERを検索するように指示します。
  5. cat F1*.txt | grep GER | cat > grepout.txt次に、これを使用して、catにgrepの出力を入力としてパイプを介して提供し、前に行ったように>演算子を使用してcatの出力を保存し、she-bang全体を終了します。 。
2
Torger597