그래서 나는 가지고있다
find . -name \*.md -type f -exec pandoc --filter ./filter1.py -o {}.html {}
그리고 {}.html
. 는 로 {}
끝나는 파일 이름을 반환 .md
하지만 가 없는 파일 이름만 반환하기를 원하므로 반환해야 하는 파일 .md
이 있다고 가정하면 file name이라는 파일을 생성하는 대신 이라는 파일을 생성합니다 .index.md
{}
index
index.html
index.md.html
.md
그렇다면 이 명령에서 이를 어떻게 제거합니까 ?
답변1
작동합니다.
예를 들어, .txt
현재 디렉터리의 파일을 고려해보세요.
find . -type f -iname "*.txt" -exec basename \{\} .txt \;
답변2
이를 사용 -exec
하여 새 bash 쉘을 생성한 다음 {}
이를 인수로 전달하여 쉘 내부에서 작동할 수 있습니다( $0
새 쉘에서와 같이 액세스할 수 있음). .md
매개변수 확장자로 끝나는 파일 형식을 제거할 수 있습니다 .
find . -name '*.md' -type f -exec bash -c 'pandoc --filter ./filter1.py -o ${0%md}html' {} \;