Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

建议: ls命令的输出格式建议 #83

Open
kice opened this issue Jan 23, 2022 · 3 comments
Open

建议: ls命令的输出格式建议 #83

kice opened this issue Jan 23, 2022 · 3 comments

Comments

@kice
Copy link

kice commented Jan 23, 2022

首先就是 ls--csv 开关输出的格式根本就不是csv格式;如果加上了递归输出,什么都不是了。

--csv开关` 改成输出为合法的csv的格式,而不是tsv(要Tab分割就额外指定)。

path (绝对路径) isdir (是否为目录) size (大小: 字节) user(所属用户) modified (修改时间)
/dir/file.txt False 123454121 a_user 2022/01/23 12:34

括号的中文只是说明这一列的是什么数据;其次可能需要注意下文件名中包含,

其次额外建议加一个类似win DIR/B 输出,方便重定向到txt文件。

@PeterDing
Copy link
Owner

确实 ls --csv 不是为了输出标准 csv 用的,是为了给使用者多一个显示的方式。因为 rich 会对于一行过长的输出在列间换行,导致在终端复制不方便。--csv 选项是用 __builtin__.print 来打印一行的,不会有这个问题。

--csv 选项和 --show-* 系列选项一起用来定义输出的内容,使用者可以自己选择。

如果需要输出标准的 csv,原理上使用者只需要加几个过滤器就好了。比如:

BaiduPCS-Py ls /some/path --csv --show-size --show-date --show-absolute-path -R | sd '([^\t]*,[^\t]*)' '"$1"' | sd '\t' ',' | rg -v '^(/|,,)'

sd: https://github.com/chmln/sd
rg: https://github.com/BurntSushi/ripgrep

@kice
Copy link
Author

kice commented Jan 23, 2022

需要用户调用其他程序转换出本身应该是由这程序的输出就很奇怪。

我看法要么改文档(和改开关名)要么就是直接输出现在文档写着的CSV格式。

而且搞得这么复杂不如直接让用户写个py脚本直接调用api,然而没多少人会编程和正则表达式

@PeterDing
Copy link
Owner

可以单独加一个 csv 命令来输出标准的 csv 文件。ls --csv 是为方便显示,不想改动。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants