BUFR_LS(1)

πŸ’– NAME πŸ’–

bufr_ls β€” the manual page for bufr_ls, bestie. That's literally it.


πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so this page is kinda structured like a nesting doll β€” the whole vibe lives inside the DESCRIPTION section. So buckle up, we're doing subsections.

🌸 NAME 🌸

bufr_ls

✨ DESCRIPTION ✨

List the content of BUFR files and print out the values of some header keys. Heads up though: only scalar keys can be printed, no cap. And the best part? It does not fail when a key isn't found. It's giving unbothered. πŸ’…

πŸŽ€ USAGE πŸŽ€

bufr_ls [options] bufr_file bufr_file ...

Yeah, you can throw in as many bufr_file arguments as you want. It eats them all. πŸ“

πŸ‘‘ OPTIONS πŸ‘‘

  • -p key[:{s|d|i}],key[:{s|d|i}],... β€” This is where you declare which keys you wanna print. For each key you can request a type: a string (key:s), a double (key:d) or an integer (key:i). If you say nothing, the default type is string. 🫢
  • -F format β€” C-style format, but specifically for floating-point values. Number nerds rise up. πŸ”₯
  • -P key[:{s|d|i}],key[:{s|d|i}],... β€” Literally the same as -p, except it adds the keys you declared onto the default list instead of replacing it. Best of both worlds, honestly.
  • -w key[:{s|d|i}]{=|!=}value,key[:{s|d|i}]{=|!=}value,... β€” The where clause, aka the vibe check. Messages get processed only if they match all the key/value constraints you listed. A valid constraint looks like key=value or key!=value. For each key you can specify a string (key:s), a double (key:d) or an integer (key:i) type, and default type is string. In the value you can also use the forward-slash character / to specify an OR condition (i.e. a logical disjunction).
⚠️ Note, bestie: only one -w clause is allowed. One. Don't push it.
  • -j β€” JSON output. For when you want your data in the internet's love language. 🌈
  • -s key[:{s|d|i}]=value,key[:{s|d|i}]=value,... β€” Key/values to set. For each key you can define a string (key:s), a double (key:d) or an integer (key:i) type. By default the native type is set.
  • -n namespace β€” Prints all the keys belonging to the given namespace. Like, the whole friend group. πŸ‘‘
  • -m β€” Prints all the keys belonging to the 'mars' namespace. That's the whole planet, periodt. πŸͺ
  • -V β€” Print version. Short, sweet, iconic.
  • -W width β€” Minimum width of each column in the output. Default is 10. Give your columns room to breathe. ✨
  • -g β€” Copy GTS header. Slay.
  • -7 β€” Does not fail when the message has wrong length. It's forgiving. It's growth. 😌
  • -h β€” Display this help text and exit. The classic escape hatch. πŸ™ˆ

πŸ’œ SEE ALSO πŸ’œ

Full documentation and examples at: <https://confluence.ecmwf.int/display/ECC/bufr_ls> β€” go read it, iykyk. πŸ“š


🫠 okay so real talk: the original page lowkey lists the entire NAME β†’ DESCRIPTION β†’ USAGE β†’ OPTIONS β†’ SEE ALSO block twice, back to back. Like, a whole second round of the exact same text, same -p, same -F, same -P, same -w, same -j, same -s, same -n, same -m, same -V, same -W, same -g, same -7, same -h, same link, everything. We're not making that up, it's just how the page arrived. Since round two is char-for-char identical to everything you just read above, we're not putting you through it again. No notes. πŸ’€

🌸 mwah, that's the whole page, bestie 🌸

This gem comes from the bufr_ls manual (that's the source, right there in the footer along with the date: October 2026), and yeah β€” it's BUFR_LS(1), a User Command, now serving group-chat energy. πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from