#!/bin/bash EDITOR_COMMAND="${EDITOR:-nano}" if [[ -z "$1" ]]; then echo "Usage: $0 " exit 1 fi update_last_modified_at() { local file="$1" local current_date="$(date +"%Y-%m-%d %H:%M %z")" if grep -q '^last_modified_at:' "$file"; then sed -i "s|^last_modified_at:.*|last_modified_at: $current_date|" "$file" else sed -i "/^date:/a last_modified_at: $current_date" "$file" fi } pattern="_posts/$1" files=( $pattern ) if [[ (${#files[@]} -eq 1 && ! -e "${files[0]}") || ${#files[@]} -eq 0 ]]; then echo "No files found matching pattern: $1" exit 1 fi if [[ ${#files[@]} -eq 1 ]]; then update_last_modified_at "${files[0]}" "$EDITOR_COMMAND" "${files[0]}" exit 0 fi echo "Multiple files found:" i=0 for f in "${files[@]}"; do echo "$i) $f" ((i++)) done read -p "Select a file number: " choice if [[ "$choice" -ge 0 && "$choice" -lt ${#files[@]} ]]; then update_last_modified_at "${files[choice]}" "$EDITOR_COMMAND" "${files[$choice]}" else echo "Invalid selection." exit 1 fi