파이썬 스크립트가 있습니다
$ 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