따라서 디렉토리나 숨겨진 파일이 없습니다. 그냥 파일. 다음과 같은 줄을 사용하면 파일만 나열할 수 있습니다.
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
입니다 .)1
l
Jim L이 주석에서 지적했듯이 위 명령은 공백이 포함되지 않은 파일 이름에서만 작동합니다. 다음 명령으로 이 문제를 해결할 수 있습니다.
ls -1p | grep -v / | sed 's/$/, /g' | xargs echo | sed 's/,$//g'
echo
목록을 ;에 전달하기 전에 줄 끝을 쉼표로 바꿉니다. 마지막 부분은 목록 끝에 있는 명령을 제거합니다.