Unix cmdを使用してファイル内のnull値を見つける方法

Unix cmdを使用してファイル内のnull値を見つける方法
Id, name, currency
101,aaa, 10000
102,BBB,
103,ccc, 20000

空のセル通貨列があることを知っています。端末コマンドを使用してどのように見つけることができますか?

答え1

データが次のようになるとしましょう。

Id,name,currency
101,aaa,10000
102,BBB,
103,ccc,20000

次に、次を使用して、3番目のフィールドにデータが含まれていない行を印刷できます。

$ awk -F , '$3 == ""' file.csv
102,BBB,

コマンドラインで-F ,入力フィールドの区切り文字をコンマに設定するので、awkコンマの各行は別々のフィールドに分割されます。条件$3 == ""は、「フィールド3が空」を意味します(「空」は「空白も含まない」を意味します)。本物、基本操作が実行されます。デフォルトの動作は現在の行を印刷することです。

ヘッダー行も出力しますか?

$ awk -F , 'NR == 1 || $3 == ""' file.csv
Id,name,currency
102,BBB,

条件は、NR == 1 || $3 == ""「最初の行、または3番目のフィールドが空の場合」を意味します。

各出力行に行番号を追加するには、次のようにします。

$ awk -F , 'NR == 1 || $3 == "" { print NR, $0 }' file.csv
1 Id,name,currency
3 102,BBB,

代わりにここ基本実際、現在の行番号(NR)とファイルの元のテキスト行($0)を印刷するブロックをトリガーします。

答え2

grep -n "null-(blank)" file.txt「null-(空白)」が表示される各行(行番号を含む)を出力します。

通貨列のみを確認するには、次の正規表現パターンを使用します。

grep -n "[^,]*,[^,]*,[ ]*null-(blank)" file.txt

関連情報