![디렉토리의 모든 HTML 파일에서 이 Python 스크립트를 어떻게 실행할 수 있습니까? [복사]](https://linux55.com/image/81207/%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%9D%98%20%EB%AA%A8%EB%93%A0%20HTML%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%9D%B4%20Python%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
파이썬 스크립트가 있습니다
$ cat ~/script.py
import sys
from lxml import etree
from lxml.html import parse
doc = parse(sys.argv[1])
title = doc.find('//title')
title.text = span2.text.strip()
print etree.tostring(doc)
다음과 같은 명령을 실행하여 단일 파일에서 스크립트를 실행할 수 있습니다.
$ python script.py foo.html > new-foo.html
~/webpage
내 문제는 하위 디렉터리에 수백 개의 파일이 흩어져 있는 디렉터리가 있다는 것입니다. 이 모든 HTML 파일에서 실행 .html
하고 싶습니다 . ~/script.py
어떻게 해야 하나요?
.html
다음 명령을 실행하면 모든 파일을 나열 할 수 있다는 것을 알고 있습니다.~/webpage/
$ find ~/webpage/ -name "*.html"
하지만 이 목록을 사용하여 스크립트를 실행하는 방법을 잘 모르겠습니다.
답변1
-exec
명령 사용find
find ~/webpage/ -name "*.html" -exec sh -c 'python script.py {} > new-{}' \;
일부 버전의 경우 다음을 수행해야 할 수도 있습니다.
find ~/webpage/ -name "*.html" -exec sh -c 'python script.py $0 > new-$0' {} \;
답변2
for 루프를 사용하여 디렉터리의 파일을 반복해 볼 수 있습니다.
for f in *.html; do python script.py f > new-"$f".html; done