alias "orig update" = update # Update a column to have a new value if it exists. # # If the column exists with the value `null` it will be skipped. export def "update" [ field: cell-path # The name of the column to maybe update. value: any # The new value to give the cell(s), or a closure to create the value. ]: [record -> record, table -> table, list -> list] { let input = $in match ($input | describe | str replace --regex '<.*' '') { record => { if ($input | get -i $field) != null { $input | orig update $field $value } else { $input } } table|list => { $input | each {|| update $field $value } } _ => { $input | orig update $field $value } } }