Search code examples
lispcommon-lispreadfile

How can I read all .text files in Lisp?


I want to read all text files in from a folder in Lisp? Like "foldername/*.txt" in c when I use shell script.


Solution

  • CL-USER 33 > (directory "/usr/share/examples/DTTk/*.txt")
    (#P"/usr/share/examples/DTTk/hotspot_example.txt"
     #P"/usr/share/examples/DTTk/pridist_example.txt"
     #P"/usr/share/examples/DTTk/opensnoop_example.txt" 
     #P"/usr/share/examples/DTTk/syscallbysysc_example.txt"
     #P"/usr/share/examples/DTTk/rwbytype_example.txt"  ...)
    
    CL-USER 34 > (mapcar (lambda (path)
                            (with-output-to-string (o)
                              (with-open-file (s path)
                                (loop for line = (read-line s nil)
                                      while line do (write-line line o)))))
                         *)
    ("The following is a demonstration of the hotspot.d script. ... " ...)