相关疑难解决方法(0)

将颜色从 ls 通过管道传递到 awk 'print' 语句

这是我昨天提出的问题的后续,在目录列表中显示文件大小的总和

多亏了零比雷埃夫斯毛里茨汉森的正确方向,我现在有了

function dir() {
        ls -FaGl "${@}" | awk '{print; total += $4}; END {print "\t\ttotal: ",total/1024,"KB"}'
}
Run Code Online (Sandbox Code Playgroud)

在我的.bash_profile,它工作得很好。但是,至少在 Linux 上(我还没有机会在 OSX 上尝试它),我ssh在 XP 上使用 PuTTY,我的目录颜色现在不见了。有没有办法通过管道将颜色代码传递给 awkprint语句?

更新

感谢 Sukminder 的回答,添加--color=always可以解决问题,就像auto之前设置的那样。但是,我现在在目录列表的末尾和总行之间有一个空格:

[19:30:58 mattdmo@server ~/webapps/django15 ] $ dir
drwxr-xr-x  7 mattdmo 4096 Mar 24 20:28 ./
drwxr-xr-x 17 root    4096 Mar 18 20:15 ../
drwxr-xr-x  7 mattdmo 4096 Mar 14 …
Run Code Online (Sandbox Code Playgroud)

ls colors bash pipe awk

8
推荐指数
1
解决办法
4242
查看次数

ls 输出的行数

ls被调用时,它输出当前目录中的所有文件/目录,尝试在每一行中尽可能多地适应。为什么当传递给 时wc -l,它输出文件数?它如何决定输出结果的行数?

ls wc

4
推荐指数
1
解决办法
2936
查看次数

标签 统计

ls ×2

awk ×1

bash ×1

colors ×1

pipe ×1

wc ×1