![파일 이름과 소스 디렉터리 정보를 제공하는 새 파일을 만드는 방법](https://linux55.com/image/93469/%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EA%B3%BC%20%EC%86%8C%EC%8A%A4%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%20%EC%A0%95%EB%B3%B4%EB%A5%BC%20%EC%A0%9C%EA%B3%B5%ED%95%98%EB%8A%94%20%EC%83%88%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
많은 하위 디렉터리와 파일이 포함된 디렉터리가 있습니다. 각 파일 이름과 소스 디렉터리 경로에 대한 정보를 제공하는 파일을 만들고 싶습니다.
예를 들어:
Sample1 및 Sample2 하위 디렉터리가 포함된 Sample이라는 폴더가 있습니다.
예제 1 디렉터리에는 가 있고 ex1.csv
예제 2 디렉터리에는 가 있습니다.ex2.csv
ex3.csv
ex4.csv
다음과 같은 방법으로 정보를 제공하는 텍스트 파일(또는) CSV 파일을 만들어야 합니다.
ex1.csv,sample/sample1
ex2.csv,sample/sample1
ex3.csv,sample/sample2
누군가가 UNIX에서 스크립트 파일을 만드는 데 도움을 줄 수 있다면 좋을 것입니다.
나는 시도했다:$ find sample -type f -printf '%f,%h\n'
저는 Solaris를 사용하고 있기 때문에 printf
추가 유틸리티를 설치할 수 없으며 권한도 없습니다.
답변1
이것이 귀하의 Solaris와 호환되기를 바랍니다. SunOS 5.10 및 bash 4.3.26에서 테스트했습니다.
find . | while read f; do
if [ ! -d "$f" ]; then
echo $(basename "$f"),$(dirname "$f")
fi
done
이것은 단지 파일 이름을 분할하는 데 basename
및 를 사용합니다.dirname
$ find test | while read f; do if [ ! -d "$f" ]; then echo $(basename "$f"),$(dirname "$f"); fi; done
ex4,test/sample2
ex3,test/sample2
ex2,test/sample1
ex1,test/sample1