2016-12-21 18 views
0

私は書式設定されたテキストを持っていて、2つの任意の文字で区切られた2つの文字のシーケンスを見つける必要があります。要点は、書式設定されたテキストの2番目の列でのみ検索する必要があることです。 grepコマンドを使う必要があります。すべての列に正しく動作フィールドを含むGrepコマンド

grep -E A\.\.\A data.txt 

が、私は、第1にのみ検索する必要があります:私はこれを思い付きました。助言がありますか? が

+2

サンプル入力と期待される出力をポストしてください。この種の質問は、デリミタなどの理由で、あまりにもあいまいさを招く可能性があります。 – sjsam

+1

あなたの要件から、「grep」は最良のツールではないと思われます。 'awk '$ 2〜/A../' file'のように' awk'を使って、あなたが望むものを実現することができます。 Awkには、あなたの仕事を簡単にするフィールドを示す変数が組み込まれています。がんばろう ! – sjsam

答えて

1

はグレップを使用して,があなたのフィールド区切りであると仮定していただきありがとうございます、あなたはこのようなものを使用することができます

  • grep -E "^[^,]*,[^,]*A[^,]{2}A" data.txt 
    

    をここで

    • は、最初の列をスキップ行の開始^
    • イブ今、我々は最初のコンマの後ろにあることを最初のカンマ[^,]*
    • 最初のカンマ,
  • までrything、例えば2番目の列に、我々は
    • オプションの文字と一致し、カンマではありませんA
    • 2つの文字の前に[^,]*:二A

しかし、他の人のように続い[^,]{2}

  • awkはおそらくこのタスクのためのより良いツールです。

  • +0

    ありがとう、私はAWKがよりよい解決策であることを知っていますが、私はGrepでそれを行う必要がありました。提案していただきありがとうございます –

    関連する問題