터미널 폴더에 디렉토리가 있습니다. MobaXterm을 사용하고 있습니다. 이 디렉토리에는 많은 수의 파일이 있습니다. 파일 이름이 길고 잘못된 문자가 일부 포함되어 있습니다. 예시 파일 이름은 다음과 같습니다."2015년 이후 개발 의제에 관한 사무총장 고위급 패널 공동의장 3인(인도네시아, 라이베리아, 영국) - Media Stakeout-1861343067001.m4a". 다음 명령줄을 사용하여 csv 파일에 파일 이름을 작성했는데 지금까지 작동했습니다.
dir$ find . -type f > names.csv
하지만 이번에는 하나의 열이 아닌 여러 개의 열로 파일 이름을 나눕니다.
A 열에만 전체 이름을 쓰고 싶습니다. 쉼표를 포함하여 원본 파일 이름을 쓰고 싶습니다. 동일한 명령으로 이전 데이터 세트에 대해 쉼표를 사용하여 파일 이름을 작성할 수 있었지만 해당 파일 이름이 이 파일 이름보다 짧다는 차이점만 있습니다.
어떻게 고칠 수 있나요?
답변1
Linux에서 GNU find에는 -printf
지정된 형식으로 파일 이름을 인쇄하는 옵션이 있습니다. CSV로 가져오려면 다음과 같이 파일 이름을 큰따옴표로 묶을 수 있습니다.
find . -type f -printf '"%p"\n'
답변2
답변3
CSV에는 다양한 종류가 있지만 sed를 사용하는 RFC 4180 호환 솔루션은 다음과 같습니다.
find . -type f | sed 's/"/""/g;s/\(.\+\)/"\1"/'
"
이는 with 인스턴스를 대체 ""
하고 비어 있지 않은 줄을 큰따옴표로 캡슐화합니다.