首页 > 系统相关 >nushell脚本总结

nushell脚本总结

时间:2022-12-08 20:13:31浏览次数:38  
标签:脚本 总结 trim nushell string list ls str table

1.["aa\n","bb\n"]输出一个列表,然后每行最后都有换行

2.["aa\n","bb\n"]|str collect其实就是str join功能;

3.netstat -anp是raw input类型,可以用netstat -anp|into string来转换为string类型;

4.["aa\n","bb\n"]|str trim是会将list每个元素都进行trim,但是不会转换(join)为string类型,也不会去掉空元素;
str trim也能对string类型做trim【但是不好的地方是它不能传要trim的参数】
str trim支持trim特定字符,如"aaa,"|str trim -c ","输出aaa

5."aa\nbb\n\n"|lines或split row "\n"将字符串转换为list,但是这个都是会trim掉两边的换行【不知道有没有不trim的】
【提了bug,这个lines可以自动trim,但是split row "\n"不应该】

6.str reverse和str trim一样如果输入是list则每个元素都reverse,但是返回的仍然是之前顺序的list,如果输入是string则将整个string reverse;

7.length是针对list的,所以"aaa"|length是返回1而不是3,要获取"aaa"的长度可以先split chars再length统计;

8.所有的管道符传递的数据都是copy语义的,不会对输入参数造成改变;

9.nushell终端支持上下文,即let kk = "uuu"按回车会到下一行,此时$kk按回车能打印uuu字符串;【所以let Path其实就类似shell里在终端上export kk = 9】
nushell和rust一样,支持对变量重新定义,即可以执行多次let kk = ..

10.str contains "pattern"可以对string和list<string>操作,对于string则是判断这个string是否包含pattern,返回值是bool类型,如果是list<stirng>则是对每个
元素都执行str contains "pattern",返回list<bool>

11.[[1,2,3],[4,5],"ss"]这种多维数组可以通过arr|flatten扁平化为一维数组;

12.nushell支持:[["aa","bb"],"ee"]|describe,返回list<any>,那么就可以实现类似[$"(ls)", $"(netstat -anp)"]|select 1只展示第二个命令【$"(ls)"可以换成(ls),但是输出类型会变成table】

13.ls|$in.name.0可以取出name的值,有cell类型;ls返回的是一个table类型;可以简化为(ls).name.0

14.shell没有void的概念,像echo、表达式之类的,它们都会返回参数本身或者表达式本身;然后就是echo没有$in,它的输入只有“函数参数”一种,因此"aa"|echo $in要这么写

15.注意,select 0不是说把list的第一个元素取出来作为一个item,select是subList的概念,即select 0仍然是list,只是里面只有之前list的第一个元素

16.只适用于list<table<...>>这种复杂item类型(table在nu看来也是一种特殊的list,因此可以扁平化,但是table也无法继续flatten),但是flatten无法将list<string>转换为string【单个元素】;用arr.0的方式取数组,用tb.column.0取cell,通过describe可以得到item/cell正确的类型;

17.nushell可以处理如string、int、list<any>、table(类似list<map>)、record等等数据类型,而bash则只能处理字符串类型

18."abcde,"|str substring $"0,(($in|split chars|length) - 2)",注意"abce"|($in|xxx)等同于"abce"|$in|xxx

19.table类似list<map>【list<record>】,但不是list;record类型就类似map

标签:脚本,总结,trim,nushell,string,list,ls,str,table
From: https://www.cnblogs.com/silentdoer/p/16967137.html

相关文章

  • C编程命名习惯总结
    1、​​匈牙利命名法​​​通过在变量名之前增加小写字母的符号前缀,以标识变量的属性、类型、作用域等参数。简单地说,即“变量名=属性+类型+对象描述”的形式。示例:m_lpszStr......
  • KEIL mdk LIB 使用总结
    1、:打开一个测试通过的工程。(测试没有问题后将不需要的部分删除,包括main.c文件,即你不想生成lib的各类xx.c文件删除。当然你也可以将各类不想编译生成lib的文件Optionsfor......
  • Redis项目总结--缓存更新策略
    Redis项目总结--缓存更新策略1.更新策略内存淘汰超时剔除主动更新说明不用自己维护,利用Redis内存淘汰机制,内存不足时自动淘汰部分数据,下次查询时更新缓存给......
  • 压缩软件 7z 中文美化版、解 NSIS 脚本版 | 7-Zip(22.1)
    软件简介:7-Zip是一款免费的文件压缩/解压软件,拥有极高的压缩率。它特有的高解压速率,是其它的压缩软件难以相比的。它源自LZ77的优化改进的LZMA算法,具有高压缩率、可变......
  • 字符串总结2
    作者:​​xyw_Eliot​​char*和int,float等的格式化转换从字符串中提取指定类型数字或子串,这种情形也是非常的常见。大部分的情形都可以用sscanf()​和 sprintf() 这两......
  • 数列知识总结梳理
    本篇文章重点梳理数列章节相关的知识,以及在求解数列相关问题时比较常用且能较好地简便计算的方法。有关等差数列与等比数列的内容本文主要是以给出性质为主,中点在于后两部......
  • 12月8日内容总结——
    目录今日内容概要今日内容概要一、纯手撸web框架二、基于wsgiref模块三、代码封装优化四、动静态网页五、jinja2模块六、前端、后端、数据库三者联动七、python主流web框架......
  • c++ stl总结
    前言本篇是c++总结系列的stl篇,重点讲解容器,及effectivestl的总结stl原理stl提供六大部件,这六大部件可以彼此搭配工作,这六大部件是:容器。各种数据结构迭代器。扮演容......
  • canvas导出图片方法总结
    1.直接调用canvas对象的toDataURL方法转化为指定类型varnewImg=newImage();newImg.src=canvas.toDataURL("image/png"));2.利用canvas对象的toBlob方法https://de......
  • Linux——Bash脚本基本用法总结
    文章目录基本语法基于语法awk(分割命令返回值)sed(处理行内容)融合正则指令条件语句条件判断符1.if2.while额外方法在脚本中使用命令行指令并获取返回值延......