grepは指定されたグループ行に一致する項目のみを出力できますか?

grepは指定されたグループ行に一致する項目のみを出力できますか?

一致する単語だけでなく、行全体を出力したいです。

ファイル.txt

 Name   Surname   Class   Best-Lesson
1.Nick   Fras      Mat     Chemic
2.Cris   Fras      Chemic  Mat
3.Dani   Cris      Philos  Physical
4.Quar   Qand      Dani    Cris

これは全体的に欲しい

grep parameters Dani Chris
output: 3.Dani Cris    Philos   Physical

私はこれをしたくない(-oを使用)

Dani Cris

ベストアンサー1

OPのコメントによると、このgrepはOPが望む結果を生成できるはずです。

grep -iE "^[[:digit:]]\.Dani\s{0,}C[h]*ris" input.txt | xargs echo "output:"

または、agep私のUbuntuシステムには存在しないため、インストールされたコマンドを使用します。

agrep -1 '[0-9]\.Dani#Chris' input.txt | xargs echo "output:"

結果:

output: 3.Dani Cris Philos Physical

情報:

  • [[:digit:]]\.、:入力ファイルから[0-9]\.いくつかの選択3.
  • Dani\s{0,}, Dani#Chris: 名前の後にスペースがあってもtex Daniを取得します。
  • C[h]*ris: キャプチャCrisまたはChris
  • | xargs echo "Output:": xargs をクリックし、Output:結果の前にテキストを追加します。

おすすめ記事