ls를 사용하여 빈 대안을 검색하려고 하는데 아무것도 작동하지 않습니다. 파일 목록이 있습니다.foo.txt
foouubar.txt
fooubbar.txt
fooubar_1.txt
foounix.txt
나는 단지 갖고 싶어 foo.txt
그리고foouubar.txt
나는 시도했다:
ls foo\(*ubar\|\(\)\).txt
그러나 결과는 비어 있습니다. 내 명령줄에 문제가 있나요?
나는 tcsh에 있어요
답변1
여기에 작동하는 솔루션이 있습니다 tcsh
. 다음과 같이 중괄호 확장 연산자를 사용합니다 {..}
.
$ echo foo{,uubar}.txt
foo.txt foouubar.txt
이는 문자열 "foo"가 교대로 추가되는 하위 문자열 집합을 생성하여 수행됩니다. 이 경우 {,...}
시도한 첫 번째 하위 문자열이 아무것도 얻지 못한다는 의미를 사용합니다. 두 번째 하위 문자열은 "uubar"입니다.
인용하다
답변2
ls
파이프와 함께 사용 하면 파일이 한 번에 한 줄씩 출력되므로 grep
다른 필터를 사용할 수 있습니다. 따라서 다음은 사용된 셸과 독립적으로 작동합니다(그러나 다른 줄에 파일을 생성합니다).
ls | egrep "foo(uubar|)\.txt"
열을 복원하려면 다음을 수행하세요.
ls | egrep "foo(uubar|)\.txt" | column