나는 스크립트를 만들었습니다 ./abc
.
출력을 새 줄로 나누고 싶습니다.
내 코드:
#!/bin/bash
dir="$1"
echo -n "size of file:"
du -hba $dir | sort -n -r | tail -1
내 결과는 다음과 같습니다
size of files: 20kb /path/to/sport
내가 원하는 출력은 다음과 같습니다.
size of files: 20kb
/path/to/sport
답변1
나는 다음과 같은 것을 고려할 것입니다 :
du="$(du -hba "$dir" | sort -n -r | tail -1)"
printf "size of file: %s\n\t%s\n" "${du/$'\t'*}" "${du#*$'\t'}"
이 du
변수는 검색 결과를 가져옵니다. 그런 다음 명령문은 탭으로 구분된 두 부분으로 분할되며 printf
각 부분은 를 사용하여 형식 문자열에 삽입됩니다 %s
.
이 구조는 개행, 탭 및 기타 특이한 문자가 포함된 파일 이름을 처리해야 합니다.
답변2
./abc | sed 's/files: /files: \n/'
내 시스템에서 다음 명령을 사용해 보았습니다 echo
.
$ echo "size of files: 20kb /path/to/sport" | sed 's/files: /files: \n\t/'
size of files:
20kb /path/to/sport