쉼표로 구분된 디렉터리의 파일만 나열하는 방법

쉼표로 구분된 디렉터리의 파일만 나열하는 방법

따라서 디렉터리도 없고 숨겨진 파일도 없습니다. 파일만요. 파일만 나열하려면 다음 줄을 사용하면 됩니다.

ls -p | grep -v /

이제 이 줄의 결과를 쉼표로 구분하고 싶습니다.

답변1

tr해당 작업에 사용할 수 있습니다 .

ls -p | grep -v / | tr '\n' ','

답변2

GNU ls -m명령을 사용할 수 있습니다. 모든 파일과 디렉토리를 쉼표로 구분하여 인쇄합니다.

답변3

Thomas가 제안한 솔루션은 작동하지만 마지막 항목(원하는 항목이 아닐 수 있음)에 쉼표를 추가하고 쉼표 뒤의 공백을 삭제합니다. 다음 대안은 쉼표 뒤의 공백을 유지하고 마지막 항목 뒤에 쉼표를 추가하지 않습니다.

 ls -1p | grep -v / | xargs echo | sed 's/ /, /g'

물론 항목 사이의 공백을 없애려면 sed 표현식을 조정하면 됩니다.

 ls -1p | grep -v / | xargs echo | sed 's/ /,/g'

(소문자 'l'과 숫자 '1'(일)이 동일하게 보이는 글꼴을 사용하는 시청자를 위한 참고 사항: 전달된 첫 번째 옵션은 소문자가 아닌 숫자 ls입니다 .)1l

Jim L이 주석에서 지적했듯이 위 명령은 공백이 포함되지 않은 파일 이름에만 작동합니다. 다음 명령은 이를 해결합니다.

 ls -1p | grep -v / | sed 's/$/, /g' | xargs echo | sed 's/,$//g' 

이는 목록을 에 전달하기 전에 쉼표로 끝나는 줄을 대체합니다 echo. 마지막 부분은 목록 끝에 있는 명령을 제거합니다.

관련 정보