有没有办法在-find-file文件上执行-script操作?

时间:2012-08-27 09:46:58

标签: emacs elisp text-processing

我想用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)
  )

不起作用。

1 个答案:

答案 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

更改脚本然后运行它。