아래 요구 사항에 대해 한 줄 명령이 필요합니다.한 줄짜리 줄을 사용하여 파일 이름이 25 자보다 짧은 파일 목록을 재귀 적으로 인쇄하려면 어떻게해야합니까?
find/-type f |xargs basename ....
I : 루트 디렉토리 및 인쇄 파일 이름이 길이 만 파일 이름에서
검색 모든 파일은 우리가 같은 아래 find 명령의 뭔가를 할 수 있다고 생각 적은 25
보다 furthur 명령에 대해 확실하지 않습니다.
아래 요구 사항에 대해 한 줄 명령이 필요합니다.한 줄짜리 줄을 사용하여 파일 이름이 25 자보다 짧은 파일 목록을 재귀 적으로 인쇄하려면 어떻게해야합니까?
find/-type f |xargs basename ....
I : 루트 디렉토리 및 인쇄 파일 이름이 길이 만 파일 이름에서
검색 모든 파일은 우리가 같은 아래 find 명령의 뭔가를 할 수 있다고 생각 적은 25
보다 furthur 명령에 대해 확실하지 않습니다.
신속하게 몇 가지 매뉴얼을 참조하면 좀 더 적합하고 understand.please하기 쉽게 AWK를 찾아야 내가 생각해 냈던 아래의 해결책을 보라.
일부 구문 오류가있을 수 있습니다. 제가 틀렸다면 나를 수정하십시오.
전체 경로와 파일 이름의 길이를 살펴 보았지만 좋은 시작처럼 보입니다. –
thats right.edited 대답을 지금 – Vijay
find/-type f|egrep "/[^/]{0,24}$"
또는 당신은 단지 경로없이 파일 이름을 표시하려면 :
find/-type f| egrep -o "/[^/]{0,24}$" | cut -c 2-
이렇게하면 루트 디렉토리에있는 모든 파일 *을 찾을 수 있습니다. 루트 디렉토리의 "from"은 재귀 적으로 의미가 있다고 생각합니다. 루트 디렉토리 만 원한다면 -maxdepth 1을 사용하면 빠릅니다. – Erik
@Erik 파일을 재귀 적으로 찾으며 파일 이름 만 일치시킵니다. '^/[^ /] {0,24} $'는 루트 디렉토리의 _in_ 파일 만 찾습니다. 그러나 내가 틀렸다면 나에게 정정해라. 또한 maxdepth 팁에 감사한다. 나는 그것을 알지 못했다. – veiset
죄송합니다, 당신 말이 맞아요, 내 마음이 거기에 배치되었습니다. +1이 잘못되었습니다. – Erik
내 GNU의 발견은 표준 발견의 일부 확실하지 여부를이를 지원합니다.
find/-type f -regextype posix-extended -regex '.*/.{1,24}$'
또는 찾기 | grep. 배쉬에게 4+
shopt -s globstar
shopt -s nullglob
for file in **/*
do
file=${file##*/}
if ((${#file} < 25));then echo "$file"; fi
done
루비를 사용
find/-type f | egrep '.*/.{1,24}$'
My 유닉스는 egrep을 지원하지 않습니다. – Vijay
(1.9+)
ruby -e 'Dir["**/*"].each {|x| puts x if File.basename(x).size < 25}'
질문 제목을 더 구체적으로 수정하십시오. –
"한 줄 명령"은 이상한 요구 사항입니다. – Johnsyweb
아니, 나는 당신이 * 할 * 명령을 원하는 것에 관한 특정 의미. 질문 제목은 질문의 주제를 반영해야하며 일반적이지 않아야합니다. 나는 너를 위해 그것을 편집 할 것이다. –