
パイプで区切られた大きなファイルがあり、特定のフィールドが空のすべての行の行番号を見つける必要があります。
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
とを組み合わせたり、ユニバーサルテキストフィルタを使用したりできます。grep
awk
awk -F'|' '$6 == "" {print NR}'
答え3
^
$
正規表現は行の先頭と末尾を一致させるため、^$
空行が一致します。行自体ではなく、一致する行の行番号を出力するパラメータを受け入れるgrep
ので、次のようになります。-n
$ grep -n '^$'
逆一致を使用し、一致しない行数を数えることもできます-v
。この場合、少なくとも1つの文字がある行を一致させようとします(.
すべての文字が一致する場合)。
$ grep -n -v .