我想用emacs对一堆html文件进行文本处理,所以我这样做:
find . -type f -name "*.html" | while read myFile; do
emacs emacs --no-site-file --no-init-file --batch \
-script myScript.el --find-file "$myFile"
done
问题是让myScript.el
对“$ myFile”采取行动 - 并保存修改后的“$ myFile”。
也许一个选项是添加一个命令行:
(add-to-list 'command-line-functions '(lambda () (and (message "ARG:'%s'" argi) t)))
到.emacs
- 但我必须加载.emacs
- 我只是不需要加载它。
也许最好在myScript.el中添加一些明智的方法。
修改:
我只是想 - 还有一个选项是在myScript.el中查找文件 - 即find-dired
。
编辑2 :
我遇到了find-dired
方法的问题,因为我无法获取标记的文件:
(progn
(find-dired default-directory "-type f -name \"*.html\"")
(dired-toggle-marks)
)
不起作用。
答案 0 :(得分:0)
我设法在bash循环的帮助下完成了。我添加了
(setq myFile "/home/boris/pst/wordy/edu/PreWW/_build/html/test.html")
到myScript.el,并运行了一个循环:
find ./_build/html -type f -name '*.html' | while read myFile; do
MyFile=`readlink -f "$myFile"`
perl -ne "s!setq myFile .+!setq myFile \"$MyFile\")!" myScript.el
emacs --no-site-file --no-init-file --batch -script myScript.el
done
更改脚本然后运行它。