리눅스 + 공백이 있는 파일을 무시(필터링)하는 방법

리눅스 + 공백이 있는 파일을 무시(필터링)하는 방법

때로는 다음과 같이 여러 이름과 각 이름 사이의 공백으로 파일 이름이 만들어지는 경우가 있습니다.

   $ touch  "A B C"
   $ ls
   A B C      <-- one file but has three words !                        
   file1
   file2
   file3

실제로 여러 이름으로 생성된 "ABC" 파일을 무시(필터링)하려면 어떻게 해야 합니까?

예상 출력

     $ ls <filter>
     file1
     file2
     file3

답변1

다음을 수행하는 경우:

ls | grep -F -v ' '

이름에 공백이 포함된 파일은 표시되지 않습니다.

(예제에서는 대신 사용했지만 fgrepHauke ​​Laging이 지적했듯이grep -F더 이상 사용되지 않음)

답변2

GNU ls 사용(즉, 임베디드 Linux가 아닌 경우):

ls -I '* *'

이름에 공백이 있는 파일을 건너뛸 이유가 많지 않습니다. file_names=$(ls)스크립트에 또는 같은 것이 있어서 이 작업을 수행하는 경우for f in $(ls)ls의 출력을 구문 분석하지 마십시오., 문제가 사라질 수 있습니다.

답변3

KSH의 확장된 glob을 사용하면 glob 확장자에서 파일 이름을 필터링할 수 있습니다.

ls -d -- !(A B C)

답변4

아마도 이것도 도움이 될 것입니다:

ls -l --quoting-style=literal:
-rw-r--r-- 1 hl hauke 0 28. Apr 16:55 A B C

ls -l --quoting-style=locale:
-rw-r--r-- 1 hl hauke 0 28. Apr 16:55 „A B C“

ls -l --quoting-style=shell:
-rw-r--r-- 1 hl hauke 0 28. Apr 16:55 'A B C'

ls -l --quoting-style=shell-always:
-rw-r--r-- 1 hl hauke 0 28. Apr 16:55 'A B C'

ls -l --quoting-style=c:
-rw-r--r-- 1 hl hauke 0 28. Apr 16:55 "A B C"

ls -l --quoting-style=escape:
-rw-r--r-- 1 hl hauke 0 28. Apr 16:55 A\ B\ C

관련 정보