![a부터 g까지 시작하는 모든 파일을 계산하는 방법은 무엇입니까?](https://linux55.com/image/27115/a%EB%B6%80%ED%84%B0%20g%EA%B9%8C%EC%A7%80%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EB%AA%A8%EB%93%A0%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EA%B3%84%EC%82%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
리눅스 명령어에 관해 질문이 있습니다. a부터 g까지 시작하는 모든 파일을 계산하는 방법은 무엇입니까?
답변1
LC_ALL=C
set -- [a-gA-G]*
if [ "$1" = '[a-gA-G]*' ]; then
echo 0
else
echo "$#"
fi
답변2
한 줄짜리 셸 명령으로 이 작업을 수행할 수 있습니다.
find / -name '[abcedfg]*' -print | wc -l
find
한 디렉터리 또는 다른 디렉터리를 읽을 수 있는 권한이 없다는 메시지가 표시되지만 이름이 이 7자로 시작하는 파일 수를 얻을 수 있습니다.
답변3
(Linux를 실행하고 있기 때문에 사용하고 있는) 이 ls
명령의 GNU 구현은 현재 디렉터리에서 문자 ag로 시작하는 모든 파일을 찾습니다.
ls --ignore='[!a-g]*'
범위에 있는 문자로 시작하지 않는 모든 파일을 무시하도록 지시합니다 [a-g]
. !
필터를 뒤집어 보세요 . *
지시하다
다음으로 출력을 실행하여 wc -l
행 수를 계산합니다.
완전한 명령은 다음과 같습니다:
ls --ignore='[!a-g]*' | wc -l
이 솔루션은 하위 디렉터리에 중복되지 않습니다.
답변4
ls -1 [a-g]* | wc -l
왜 그럴까요? 아마도 당신은 가장 간단한 대답을 원할 것이기 때문에 이것은 내가 가장 많이 사용하는 명령인 디렉토리를 세지 않거나, 하위 디렉토리를 검색하거나, 파일 이름을 대문자로 사용하는 것에 대해 걱정할 필요가 없다고 가정합니다.