答案1
insert
尽管书中的例子令人困惑,但我相信这确实就是你所寻找的。
尝试:
ls -af **/* | insert path { $in.name | path dirname } | update name { $in.name | path basename }
这会插入一个新path
列并更新(而不是删除)现有name
列以仅显示名称。
您可以稍微清理一下,并通过将其放入函数中使其更容易调用:
def split-ls [] {
insert path { $in.name | path dirname } |
update name { $in.name | path basename }
}
然后调用:
ls -af **/* | split-ls
如果您确实想要两个新列并删除现有名称:
ls -af **/* | insert path { $in.name | path dirname } | insert base { $in.name | path basename } | move path --before name | move base --before path | reject name
或者,如上所述:
def split-ls [ --help (-h) ] {
insert path { $in.name | path dirname } |
insert base { $in.name | path basename } |
move path --before name |
move base --before path |
reject name
}
ls -af **/* | split-ls