空のフィールドを持つ行の行番号を取得します。

空のフィールドを持つ行の行番号を取得します。

パイプで区切られた大きなファイルがあり、特定のフィールドが空のすべての行の行番号を見つける必要があります。

cut -d \| -f 6 filename.txt列を出力するために使用できます。

上記のどの出力行が空であるかを見つけるために、どのユーティリティ/ツール/コマンドを使用できますか?

答え1

# cut -d \| -f 6 test.txt | grep -v -E .\+ -n

grep 
    -v invert match
    -E .\+ match any 1+ character
    -n output line numbers

答え2

他の人が示したように、cutとを組み合わせたり、ユニバーサルテキストフィルタを使用したりできます。grepawk

awk -F'|' '$6 == "" {print NR}'

答え3

^$正規表現は行の先頭と末尾を一致させるため、^$空行が一致します。行自体ではなく、一致する行の行番号を出力するパラメータを受け入れるgrepので、次のようになります。-n

$ grep -n '^$'

逆一致を使用し、一致しない行数を数えることもできます-v。この場合、少なくとも1つの文字がある行を一致させようとします(.すべての文字が一致する場合)。

$ grep -n -v .

関連情報