我想使用命令列出目录的子目录tree
。但我不想打印缩进线。我只想用空格代替。
我在手册页中找不到正确的参数。也许我可以通过管道输出tree
tosed
来删除这些行。
答案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 也是一个选项,但我想保留一些“元音变音”)。选项“-c
iconv
默默地丢弃无法转换的字符“。最后,我删除了不间断空格。这可能与您无关。
警告:如果 UTF-8 编码的字符无法转换为目标编码,则会丢失它们。