3
1|1001|399.00|123                                  
1|1001|29.99|234                                  
2|1002|98.00|345                                   
2|1002|29.98|456                                   
3|1003|399.00|567  
4|1004|234.56|456

awk を使用して、列 2 に「1002」が含まれるすべての行を取得するにはどうすればよいですか?

最初の列が '2' であるすべての行を取得したい場合、grep ^2 を使用できますが、別の列で検索するにはどうすればよいですか?

4

1 に答える 1

6

典型的な解決策は次のとおりです。

awk '$2 == 1002' FS=\| input-file

次の場合とは少し異なる結果が得られます $2 ~ 1002。これは技術的にはクエリを満たしますが、おそらく希望どおりではありません。(正規表現の一致を行うため、2番目の列が「341002994」の場合に一致します)。

于 2013-03-02T09:52:51.107 に答える