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
모든 경우에 “표준”정렬을 원할 경우 먼저 설정 하는 것이 좋습니다.
답변
출력이 터미널이 아닌 경우 단일 열 모드 -C
를 ls
사용 하여 추가해야합니다 . 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"