ls 명령에서 1 열의 출력을 에코하는 방법은 무엇입니까? 수행하면 출력은

ls 명령을 수행하면 출력은 다음과 같습니다.

file1 file2 file3 file4

이 경우 file2의 특정 출력 열만 표시 할 수 있습니까? 나는 성공하지 않고 다음을 시도했다.

echo ls | $2

기본적으로 내가하고 싶은 것은 두 번째 열만 에코하는 것입니다.이 경우 에코하고 싶습니다.

file2



답변

다음 명령은 ls 출력을 하나의 열로 형식화합니다.

ls -1 /directory


답변

당신은 이것을 찾고 있습니다 :

ls -C | awk '{ print $2 }'

그러나 나중에이 파일 이름을 사용하려고한다고 가정하면 공백이 포함 된 파일 이름이 손상되므로이 작업을 수행하지 마십시오. 대신 파일을 배열에 넣고 두 번째 파일을 가져 오면 구문 분석을 전혀하지 않아도됩니다.

files=(*)
printf '%s\n' "${files[1]}"

파일을 다시 가져 오는 순서는의 값에 따라 다릅니다 LC_COLLATE. 따라서 LC_COLLATE=C모든 경우에 “표준”정렬을 원할 경우 먼저 설정 하는 것이 좋습니다.


답변

출력이 터미널이 아닌 경우 단일 열 모드 -Cls사용 하여 추가해야합니다 . awk그런 다음 두 번째 열을 인쇄합니다.

ls -C | awk '{print $2}'


답변

나는 당신이 찾고 있다고 생각

ls -1

권한, 소유자, 그룹, 날짜, 크기 …가 아니라 단일 파일에 간단한 파일 이름이 표시됩니다.


답변

나를 위해 작동하는 유일한 방법은 “-all”을 추가하는 것입니다. 그건:

ls -C -all | awk '{ print $1 }'

-all사용자, 권한 등과 같은 열을 더 추가 하기 때문에


답변

이미 언급했듯이- 파일 이름 길이와 터미널 너비에 따라 줄을 나누기 ls때문에 구문 분석 출력에 열을 사용하는 것은 그리 강력하지 않습니다 ls. 요소 목록의 단일 열을 표시하는 것이 종종 흥미 롭습니다. cut 명령을 사용하여이를 수행 할 수 있습니다.

echo file1 file2 file3 file4 | cut -d" "  -f2

표시됩니다

file2

참고 -d로 예를 들어 그래서, 당신은 열 구분 기호를 선택할 수 있습니다

cur -d, -f2

쉼표로 구분 된 목록의 두 번째 열을 표시 할 수 있습니다.


답변

현재 경로에서 특정 파일 이름 만 표시하려는 경우 아래 명령을 사용하십시오

명령:

find path -maxdepth 1 -iname "filename"|sed "s/\.\///g"