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