ls 명령을 실행할 때 출력은 다음과 같습니다.
file1 file2 file3 file4
출력의 특정 열(이 경우 file2)만 표시할 수 있습니까? 나는 성공하지 않고 다음을 시도했습니다.
echo ls | $2
기본적으로 내가 원하는 것은 두 번째 열만 에코하는 것입니다. 이 경우에는 에코하고 싶습니다.
file2
답변1
다음 명령은 출력 형식을 ls
하나의 열로 지정합니다.
ls -1 /directory
답변2
가장 안정적인 방법은 파일을 배열에 넣은 다음 구문 분석을 방지하는 두 번째 파일을 가져오는 것입니다.
files=(*)
printf '%s\n' "${files[1]}"
파일이 검색되는 순서는 값에 따라 다릅니다 LC_COLLATE
. 따라서 LC_COLLATE=C
모든 특수한 경우에 "표준" 정렬을 원하는 경우 이를 먼저 설정하는 것이 좋습니다.
답변3
출력이 터미널이 아닌 경우 단일 열 모드를 사용하려면 -C
as를 추가해야 합니다. 그런 다음 두 번째 열을 인쇄합니다.ls
awk
ls -C | awk '{print $2}'
답변4
이미 언급했듯이 열을 사용하여 ls
출력을 구문 분석하는 ls
것은 파일 이름 길이와 터미널 너비에 따라 줄이 끊어지기 때문에 그다지 강력하지 않습니다. 요소 목록의 단일 열을 표시하는 것은 종종 재미있습니다. Cut 명령을 사용하여 이 작업을 수행할 수 있습니다.
echo file1 file2 file3 file4 | cut -d" " -f2
표시됩니다
file2
-d
열 구분 기호를 선택할 수 있습니다 .
cut -d, -f2
쉼표로 구분된 목록의 두 번째 열을 표시할 수 있습니다.