2013-07-19 3 views
0

리눅스에서 기본 파일 조작 및 스크립팅을 가르치려고하지만 벽에 부딪 혔습니다. 지금은 검색 할 디렉토리가 주어진 경우주어진 디렉토리의 출력 파일 이름/행/유형

FILENAME  LINES  TYPE 
File1  22  File 
File2  56  File 
Folder1  N/A  Directory 

과 같은 테이블을 출력하려고합니다. 필자는 awk를 사용하여 출력 형식을 지정하고 grep 및 wc를 사용하여 데이터를 얻는 방법을 연구했지만 약간 손실되었습니다. 내가 아는 한 모두는 내가 틀린 나무를 완전히 짖고있다.

+1

시도해 보셨습니까? ... 또는 숙제? –

+0

for 루프와'wc' 및'file' 또는'stat' 명령을 사용할 것입니다. –

답변

0
이것은 find | while read 루프를 통해 할 수있는 모든 등

라인의 수를 출력, 파일 유형을 찾기 위해 명령 file 보면 다음, wc 당신의 출력의 형식을 printf에서

봐, :

printf "%-20.20s %-3.3s %s\n", "File", "Lines", "Type" 
find . -type f -print0 | while read -d $'\0' file 
do 
file_name=$(basename $file) 
    lines="$(cat $file | wc -l | sed 's/^ *//')" 
    desc="$(file --brief "$file")" 
printf "%-20.20s %3.3s %s\n", "$file_name", $lines, "$desc" 
done 

$(...) 구문은 포함 된 명령의 출력을 변수에 할당 할 수있는 문자열로 반환합니다. cat $file | wc -l을 사용하여 파일 이름을 제거한 다음 sed을 사용하여 선행 공백을 제거합니다.

관련 문제