저와 비슷한 질문이 있다는 것을 알고 있지만 정규식을 전혀 이해하지 못하므로 이것이 새로운 질문입니다.
내 폴더에 파일이 잔뜩 있어요. _GLM_
특정 패턴(""이 있는 패턴)과 일치하는 다른 폴더로 일부 파일을 이동하려면 Bash를 사용해야 합니다 . 소스 폴더가 호출 /SingleScale
되고 대상 파일은 다음과 같습니다 /NotUsing
. 파일 이름의 예는 다음과 같습니다.
/SingleScale/Leopardus wiedii_GLM_canhtglad_s4_mean.csv
나는 시도했다:
cp /SingleScale/*_GLM_*.csv /NotUsing/
답변1
주의하세요:
- Bash에서는
*
,cp
...mv
not 과 같은 와일드카드를 사용합니다.일반적인 표현. 이건 카니발이야내부 패턴 매칭 시스템(세부 사항,세부정보 및 예시). - 파일 이름에 공백이 포함되어 있어도 괜찮지만 셸을 사용할 때 상황이 복잡해질 수 있습니다.
공백 문자는 필드 구분 기호입니다.
cp file1 file2 myDir
파일은 다음과 같이 디렉터리 에 복사
file1
되고 복사됩니다.file2
myDir
cp Leopardus wiedii_GLM_canhtglad_s4_mean.csv myDir
Leopardus
파일 이 없기 때문에 실패합니다wiedii_GLM_canhtglad_s4_mean.csv
.이 문제는 다음을 통해 해결될 수 있습니다.
따옴표 사용(이 경우 간단한 따옴표나 큰 따옴표는 아무런 차이가 없습니다):
cp 'Leopardus wiedii_GLM_canhtglad_s4_mean.csv' myDir
단점은 와일드카드가 따옴표와 충돌한다는 것입니다.
이스케이프된 공백 문자를 사용하여
\
:cp Leopardus\ wiedii_GLM_canhtglad_s4_mean.csv myDir
그 외에는 명령이 괜찮아 보입니다( 실제로 파일을 이동하는 mv
대신 사용하는 경우 제외). cp
자세한 내용/오류 메시지가 있습니까?