1
Fork 0
mirror of https://github.com/RGBCube/nu_scripts synced 2025-08-01 22:57:46 +00:00

Port before_v0.60/math, before_v0.60/parsing and before_v0.60/git (#844)

This PR is part of porting all old scripts #221 and includes a set of
small modules:
- `math`
- `parsing`
- `git`
This commit is contained in:
Igor 2024-05-25 19:18:21 +04:00 committed by GitHub
parent 429126f3d8
commit 15cb7179e2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 9 additions and 46 deletions

View file

@ -0,0 +1,5 @@
# Parsing Scripts
### Definition
These scripts should be used to demonstrate how to parse any file format, including `json`, `csv`, etc. Also, perhaps parsing of `external` commands. For example, on Windows, perhaps we could wrap `ipconfig.exe` so that the output was more nushell friendly.

View file

@ -0,0 +1,18 @@
[
{
"name": "Brunello Cucinelli",
"shoes": [
{ "name": "tasselled black low-top lace-up", "price": 1000 },
{ "name": "tasselled green low-top lace-up", "price": 1100 },
{ "name": "plain beige suede moccasin", "price": 950 },
{ "name": "plain olive suede moccasin", "price": 1050 }
]
},
{
"name": "Gucci",
"shoes": [
{ "name": "red leather laced sneakers", "price": 800 },
{ "name": "black leather laced sneakers", "price": 900 }
]
}
]

View file

@ -0,0 +1,21 @@
def look_for [word] {
open sample_andres.json |
flatten |
flatten |
insert comp {
get shoes_name |
split row " " |
enumerate | each {
[[idx, loc]; [$in.index, ($in.item | str index-of $word)]]
} | flatten
} |
flatten |
where comp.loc >= 0 |
flatten |
update idx { $in + 1 } |
reject name price loc |
rename nameWords targetWordIndex
}
print (look_for "leather" | to json --indent 4)
print (look_for "low-top" | to json --indent 4)