null以外の列を探す

null以外の列を探す

HDFSにフィードがあります。

3番目の列が空でない行を見つける必要があります。

区切り文字で区切られたフィード|

SQLに対応

select * from feed_table where column_3 is not null;

入力する:

1|abc|123
2|def|
3|ff|124
4|gh|

出力:ここの3番目の列は空ではありません。

1|abc|123
3|ff|124

答え1

awkこれに使用できます。 awkの区切り文字を次に設定し、3番目の列が空の文字列ではないことを|確認してください。

$ cat /tmp/foo 
1|abc|123
2|def|
3|ff|124
4|gh|
$ awk -F'|' '$3 != ""' /tmp/foo
1|abc|123
3|ff|124

答え2

2つのgrepオプション:

grep -v '|$' < input

上で見つけた行いいえ端にチューブがあります。データファイルにただ3つの列がある場合、最後の(2番目の)パイプの後にデータのない行を見つける(除外)ショートカットです。

grep '|[^|].*|.' < input

上記はもう少し厳しいです。パイプ記号が必要で、その後に[^|]パイプ記号()以外の記号が続き、その後にパイプ記号が続きます。.)。これにより、空きスペースが許可されます。最初大地。

関連情報