시간 단계별로 이름이 지정된 데이터 파일이 있습니다. 예를 들면 다음과 같습니다.
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]