소수점 위의 숫자로 명명된 파일 삭제

소수점 위의 숫자로 명명된 파일 삭제

시간 단계별로 이름이 지정된 데이터 파일이 있습니다. 예를 들면 다음과 같습니다.

0.01  
0.02  
0.03  
0.04  
0.05  
0.06  
0.07  
0.08  
0.09  
0.1  
0.11
...
0.99
1
1.01
...
1000

보시다시피 일부 데이터 파일 이름에는 소수점 이하 두 자리가 있는 반면, 다른 데이터 파일 이름에는 소수점 1자리가 있거나 소수점 자리가 없습니다. 소수점 이하 2자리(예: 0.01, 0.02 등)가 있는 이름의 파일만 삭제하고 모든 파일은 소수점 이하 2자리 미만으로 유지하고 싶습니다. 그래서 결국 파일을 다음과 같이 표시하고 싶습니다.

0.1
0.2
...
0.9
1
1.1
...
1000

하지만 나머지는 삭제하세요.

소수점 이하 숫자로 명명된 파일을 삭제하는 방법은 무엇입니까?

답변1

당신이 무엇을 요구하는지 잘 모르겠습니다. 넌 둘 다 달라고 해제거하다소수점 이하 2자리 미만의 파일유지하다소수점 이하 2자리 미만의 파일입니다.

bash 쉘을 사용한다고 가정합니다. 대답은 쉘마다 다릅니다.

네가 원한다면제거하다소수점 이하 2자리 이하의 모든 파일:

shopt -s extglob
rm !(*.[0-9][0-9])

네가 원한다면유지하다소수점 이하 2자리 이하의 모든 파일:

rm *.[0-9][0-9]

답변2

이것:

$ rm +([0-9]).[0-9][0-9]

점 앞에 하나 이상의 숫자와 소수점 이하 두 자리가 있는 모든 파일이 삭제됩니다.

extglog는 대화형 셸에 대해 기본적으로 설정되어 있으므로 bash에서는 작동하지만 스크립트에서 사용해야 하는 경우 다음을 사용하세요.

shopt -s extglog
rm +([0-9]).[0-9][0-9]

관련 정보