2013-01-10 4 views
-1
를 사용하여 나무 같은

가능한 중복 :
List all directories recursively in a tree-like목록 A의 재귀 적으로 모든 디렉토리 AWK

내가이 형식과 같이 재귀 적으로 모든 디렉토리를 표시 awk를 사용하여 tree 명령을 시뮬레이션 할 :

|____ 
| |____0 
| |____b 
| |____c 
| | |____a 
| | |____w 

그리고

find ./ -type d -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' 

을하지만 awk를 사용하는 것을 어떻게 할 수 : sed 사용하고 계십니까?

+0

@shellter 당신은 내가 무엇을 시도했는지 보여달라고 요청했습니다. 그래서 여기 있습니다. 하나가 닫힌 이후 중복되지 않습니다. –

+1

그 코드를 작성하는 다른 사람이 있습니다. awk 설명서 나 http://www.grymoire.com/Unix/Awk.html을 읽으십시오. 나는 너에게 힌트를 줄 것이다. 'gsub (/ s /, "r", "str"또는 $ fldNum)'에 대해 읽어보십시오. 행운을 빕니다. – shellter

답변

2

글을 쓰려는 시도는 보이지 않지만 솔로잇턴을 보여주기 위해 무언가를 만들었습니다. 이것을 기대하면 awk를 배울 수 있습니다.

find ./ -type d -print | awk -F "/" '{for (i=1; i<=NF-2; i++){printf "| "} print "|____"$NF}' 

이 awk 명령은 "/"(-F 옵션) 구분 기호로 사용됩니다.

그리고, 각 라인 인쇄 "|"필드의 수 (NF) 마이너스 많은 시간 2. 마지막으로는 인쇄 "| _"마지막 필드 ($ NF)에 의해 folowed.

+0

굉장! Pierre = D 감사합니다. –

관련 문제