I want to write a script to process the contents of a text file line by line, and came across this example on Emacs wiki - https://www.emacswiki.org/emacs/BatchMode
emacs --batch --eval "(while t (print (eval (read))))"
So I adjusted it to emacs --batch --eval "(while t (print (read)))"
and the prompt Lisp expression:
is always displayed.
─○ emacs --batch --eval "(while t (print (read)))"
Lisp expression: fdfdfds
fdfdfds
Lisp expression: dsfdsfdfds
Lisp expression: ^C%
When I try a command like cat text1.txt | emacs --batch --eval "(while t (print (read)))"
it barfs completely, so read
is definitely not the function for this, unless I’m failing to pass some necessary options to it.
You must log in or register to comment.
I made some progress, with
read-from-minibuffer
the function I need, however I want to terminate the script and suppress the error information at the end.─○ cat text1.txt | emacs -batch --eval "(while t (princ (read-from-minibuffer \"\") (terpri)))" Here is some text Will it be tripled? Here is some text Will it be tripled? Here is some text Will it be tripled? Debugger entered--Lisp error: (end-of-file "Error reading from stdin") read-from-minibuffer("") (princ (read-from-minibuffer "") (terpri)) (while t (princ (read-from-minibuffer "") (terpri))) eval((while t (princ (read-from-minibuffer "") (terpri))) t) command-line-1(("--eval" "(while t (princ (read-from-minibuffer \"\") (terpri)...")) command-line() normal-top-level()