2016-11-03 1 views
0
+----+-------+-----+ 
| ID | STORE | QTY | 
+----+-------+-----+ 
| |  |  | 
| 9 | 101 | 18 | 
| |  |  | 
| 8 | 154 | 19 | 
| |  |  | 
| 7 | 111 | 13 | 
| |  |  | 
| 9 | 154 | 18 | 
| |  |  | 
| 8 | 101 | 19 | 
| |  |  | 
| 7 | 101 | 13 | 
| |  |  | 
| 9 | 111 | 18 | 
| |  |  | 
| 8 | 111 | 19 | 
| |  |  | 
| 7 | 154 | 14 | 
+----+-------+-----+ 

私は3店舗持っていると仮定し、店舗ごとに同じqtyのすべてのidに対してSTOREを使いたいとします。その複雑な表現にはどのようにgrepを使いますか?

例:id 9は3店舗で、すべての店舗には18個のqty( )がありますが、id 7は店舗にありますが、2店舗だけが同じqty(店舗111と101 - 154 - idは14個です)です。 grepを使ってどのようにその結果を得ることができますか?

あなたはそれを1つの表現で得ることは不可能だと思いますか?私は正規表現について考えましたが、どのようにQtyを取得して別の行と比較するのか分かりません。

+2

SQLデータベースからの出力があるようです。出力でcoreutilsを使用する代わりに、SQLを使用してデータベースを照会します。 – andlrc

+0

は、あなたのテキストの '|'部分か、質問をする目的のためのちょっとした装飾ですか? – Sundeep

+0

@Sundeepもっと良い出力を出力するために他のものを装飾するだけです – corey

答えて

0

は、cutで最初と最後の列を抽出しuniqの組み合わせの数をカウントし、出力その回数(つまり、値が3つのすべての店舗でも同じです)3であるもののみ::のように私のファイルでは見え

$ cut -d\| -f2,4 | sort | uniq -c | grep '^ *3 ' 
     3 8 | 19 
     3 9 | 18 
関連する問題