트리 명령에서만 공백으로 들여쓰기 인쇄

트리 명령에서만 공백으로 들여쓰기 인쇄

명령을 사용하여 디렉토리의 하위 디렉토리를 나열하고 싶습니다 tree. 하지만 들여쓰기 줄을 인쇄하고 싶지 않습니다. 그냥 공백으로 바꾸고 싶습니다.

매뉴얼 페이지에서 올바른 매개변수를 찾을 수 없습니다. 아마도 출력을 파이프하여 이 줄을 제거할 수 있을 것 tree입니다 sed.

답변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에 플래그를 추가 하면 됩니다 . treesed로 파이프하는 것보다 조금 더 간단합니다!

답변4

또 다른 ( sed무료) 방법은

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

여기서는 출력을 utf8에서 latin1로 변환합니다(예: ISO-8859-1, ASCII도 옵션이지만 일부 "움라우트"를 유지하고 싶습니다). 옵션 -c"iconv변환할 수 없는 문자를 자동으로 삭제". 마지막으로 잘림 방지 공백을 제거했습니다. 이는 귀하와 관련이 없을 수도 있습니다.

경고하다: UTF-8로 인코딩된 문자를 대상 인코딩으로 변환할 수 없으면 손실됩니다.

관련 정보