次の形式のファイルがあります。
Name=Dan
Age=45
Name=Alex
Age=35
Cellphone=12345678901
Name=John
Age=
Cellphone=12345678901
ファイルには、フォーマットされた1000以上のデータ項目がありますName=Value
。
値が欠落している場合は、下の出力でその値を年齢の欠損値として見つけたいと思います。
私はcutコマンドを使ってcut -d “=“ -f2 > some file
空の行を見つけて、元のgrep -n ‘[[:blank:]]’ file
ファイルの行番号を表示してみました。
ただし、複数のファイルがあるため、この方法は複雑に見えます。
より簡単な方法がありますか?
答え1
以下を試してみてください。
cat <filename> | sed "s/ /\n/g" | grep "=$"
これにより、空白が新しい行に変わり(値に空白が含まれている場合、この方法は機能しません)=後に行の終わりが続く項目を見つけます。
答え2
ファイルを次のように表示する場合分離、2番目の行のすべての行を一致させて出力できます。大地最大スペースで構成できます。
awk -F= '$2 ~ /^[ \t]*$/' file
答え3
拡張正規表現で使用grep
:
grep -Eno "[A-Za-z]+=( |$)" /path/to/file
空のキーと対応する行番号を印刷する必要があります。