Linux에서는 파일 이름에서 쉼표를 제거할 수 없습니다.

Linux에서는 파일 이름에서 쉼표를 제거할 수 없습니다.

터미널 폴더에 "data"라는 폴더가 있습니다. 데이터의 일부 파일 이름에는 ","가 포함되어 있습니다. 나는 그것들을 나열할 수 있다

$ cd data
$ ls -i |grep -E '\,'

그런데 이 파일 이름에서 ","를 제거하는 방법을 모르겠습니다. 내 연구를 바탕으로 비슷한 접근 방식을 시도했지만 grep -E '\,' | sed ','성공하지 못했습니다. 파일 이름에서 쉼표를 제거할 수 없으면 파일을 삭제할 의향이 있지만 터미널 폴더나 rm을 사용하는 명령줄에서는 파일을 삭제할 수 없습니다(해당 파일이나 디렉터리가 없다고 표시됨).

답변1

Bash 쉘을 사용하면 쉼표가 포함된 모든 파일 이름을 반복하고 이름을 바꾸어 모든 쉼표를 제거할 수 있습니다.

for f in *,*; do mv -- "$f" "${f//,/}"; done

예제를 실행해 보세요.

$ touch foo,bar a,b,c,d
$ ls
a,b,c,d  foo,bar

결과 :

$ for f in *,*; do mv -- "$f" "${f//,/}"; done
$ ls
abcd  foobar

그러면 기존 대상 파일 이름이 모두 삭제됩니다.

관련 정보