# Data from Anywhere

CSV files, JSON, the web and dates: the data real tools work with.

Updated: November 10, 2026

## [Data](https://www.ask-codey.com/courses/bash-in-depth/topics/bash-data)

1. [CSV Files in Bash, and Their Limits](https://www.ask-codey.com/lessons/bash-csv-files) (Journeyman): A CSV file is a table saved as text: while IFS=, read -r reads it a row at a time into named variables, awk -F, picks and totals its columns, and a comma inside a quoted value breaks both.
2. [JSON with jq](https://www.ask-codey.com/lessons/bash-jq) (Journeyman): jq reads JSON, the labeled data that web APIs and cloud tools answer with: dots follow the labels in, .\[\] goes through every item in a list, select keeps the items you want, and -r prints plain lines a bash loop can read.

## [The Web](https://www.ask-codey.com/courses/bash-in-depth/topics/bash-the-web)

1. [Talking to the Web: curl](https://www.ask-codey.com/lessons/bash-curl) (Journeyman): curl fetches whatever is at a web address, from the terminal or a script: it prints a page, saves a download with -o or -O, asks a web API for JSON, shows the status code with -w, and with -f fails on an error instead of saving the error page.

## [Time](https://www.ask-codey.com/courses/bash-in-depth/topics/bash-time)

1. [Dates and Times](https://www.ask-codey.com/lessons/bash-dates) (Journeyman): date followed by + and a pattern prints a date in the shape you need, such as date +%F for 2026-11-09; date -d works out other days, such as 7 days ago; date +%s counts seconds, for timing a job; and a Mac's date uses -v instead of -d.

## [Exercise: Today's Weather Report](https://www.ask-codey.com/courses/bash-in-depth/topics/exercise-bash-todays-weather-report)

1. [Exercise: Today's Weather Report](https://www.ask-codey.com/lessons/exercise-bash-todays-weather-report) (Journeyman): Write two small tools, a script that turns a saved weather forecast into a short daily report with jq and date, and one that downloads a fresh forecast with curl without ever losing the saved one, then let a check script tell you what's done.

Source: https://www.ask-codey.com/courses/bash-in-depth/chapters/bash-data-from-anywhere
