“ls”的非列输出通过管道传输到“sed”[关闭]

问题描述 投票:0回答:1

据我所知,命令

sed
逐行处理其输入。因此,以下命令成功仅输出当前目录中的目录:

$ ls -p -1 | sed -n '/\/$/p'

这里选项

-1
ls
使其输出出现在列中,因此
sed
可以逐行处理它。但是,如果我删除选项
-1
,此命令仍然有效。为什么?如果没有选项
-1
ls
的输出不是一组分隔行。

linux bash unix sed ls
1个回答
0
投票

二进制文件可以使用

isatty
库函数来测试其文件描述符是否与终端关联。

许多工具都会执行此操作并相应地更改其输出,例如大多数工具在打印到终端时会输出 ANSI 颜色代码,但在重定向到文件或管道到另一个进程时仅输出纯文本。

相关:C 中 isatty() 的作用是什么?

© www.soinside.com 2019 - 2024. All rights reserved.