仅在树命令中打印带有空格的缩进

仅在树命令中打印带有空格的缩进

我想使用命令列出目录的子目录tree。但我不想打印缩进线。我只想用空格代替。

我在手册页中找不到正确的参数。也许我可以通过管道输出treetosed来删除这些行。

答案1

所以你想要这样的东西:

tree | sed 's/├\|─\|│\|└/ /g'

它将所有这些“行”字符替换为空格。


看:

$ tree
.
├── dir1
│   ├── file1
│   └── file2
└── dir2
    ├── file1
    └── file2

2 directories, 4 files
$ tree | sed 's/├\|─\|│\|└/ /g'
.
    dir1
        file1
        file2
    dir2
        file1
        file2

2 directories, 4 files

答案2

有用:

tree | sed -e 's/[├──└│]/ /g' 

答案3

您只需将-i标志添加到tree命令中即可不显示缩进。比通过管道传输到 sed 简单一点!

答案4

另一种(sed免费)方式是

tree | iconv -f utf8 -c -t latin1 | tr '\240' ' '

在这里,我将输出从 utf8 转换为 latin1(即 ISO-8859-1,ASCII 也是一个选项,但我想保留一些“元音变音”)。选项“-ciconv默默地丢弃无法转换的字符“。最后,我删除了不间断空格。这可能与您无关。

警告:如果 UTF-8 编码的字符无法转换为目标编码,则会丢失它们。

相关内容