update для фильтров
Сигнатура
> update {flags} (field) (replacement value)
Параметры
-
field: Имя столбца для обновления. -
replacement value: Новое значение для ячейки или ячеек либо замыкание для создания значения.
Типы ввода/вывода:
| ввод | вывод |
|---|---|
| запись | запись |
| таблица | таблица |
| список<any> | список<any> |
Примеры
Обновить значение столбца.
> {'name': 'nu', 'stars': 5} | update name 'Nushell'
╭───────┬─────────╮
│ name │ Nushell │
│ stars │ 5 │
╰───────┴─────────╯Использовать замыкание, чтобы преобразовать каждое значение в столбце 'authors' в одну строку.
> [[project, authors]; ['nu', ['Andrés', 'JT', 'Yehuda']]] | update authors {|row| $row.authors | str join ',' }
╭───┬─────────┬──────────────────╮
│ # │ project │ authors │
├───┼─────────┼──────────────────┤
│ 0 │ nu │ Andrés,JT,Yehuda │
╰───┴─────────┴──────────────────╯Неявно использовать значение $in в замыкании для обновления 'authors'.
> [[project, authors]; ['nu', ['Andrés', 'JT', 'Yehuda']]] | update authors { str join ',' }
╭───┬─────────┬──────────────────╮
│ # │ project │ authors │
├───┼─────────┼──────────────────┤
│ 0 │ nu │ Andrés,JT,Yehuda │
╰───┴─────────┴──────────────────╯Обновить значение по индексу в списке.
> [1 2 3] | update 1 4 ╭───┬───╮ │ 0 │ 1 │ │ 1 │ 4 │ │ 2 │ 3 │ ╰───┴───╯
Использовать замыкание для вычисления нового значения по индексу.
> [1 2 3] | update 1 {|i| $i + 2 }
╭───┬───╮
│ 0 │ 1 │
│ 1 │ 4 │
│ 2 │ 3 │
╰───┴───╯Примечания
При обновлении столбца замыкание будет выполняться для каждой строки, а текущая строка будет передаваться в качестве первого аргумента. Обращение к $in внутри замыкания вернёт значение столбца для текущей строки.
При обновлении конкретного индекса замыкание будет выполняться только один раз. И первым аргументом замыкания, и значением $in будет текущее значение по этому индексу.
Подкоманды:
| имя | описание | тип |
|---|---|---|
update cells |
Обновить ячейки таблицы. | встроенная |
Copyright © 2019–2026 The Nushell Project DevelopersLicensed under the MIT License.
https://www.nushell.sh/commands/docs/update.html