From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Marcin Borkowski Newsgroups: gmane.emacs.help Subject: Re: How to run shell command with stream input, to get string output Date: Mon, 01 Jul 2019 11:10:02 +0200 Message-ID: <874l46w26t.fsf@mbork.pl> References: <20190630223205.GA19895@protected.rcdrun.com> <875zomw7cf.fsf@mbork.pl> <20190701081716.GA11749@protected.rcdrun.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="140638"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: mu4e 1.1.0; emacs 27.0.50 Cc: GNU Emacs Help To: Jean Louis Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Jul 01 11:19:02 2019 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hhsSh-000aLw-5V for geh-help-gnu-emacs@m.gmane.org; Mon, 01 Jul 2019 11:18:59 +0200 Original-Received: from localhost ([::1]:56298 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hhsSg-0003nx-4k for geh-help-gnu-emacs@m.gmane.org; Mon, 01 Jul 2019 05:18:58 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45957) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hhsO1-0000JL-Jl for help-gnu-emacs@gnu.org; Mon, 01 Jul 2019 05:14:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hhsNz-0001d9-O3 for help-gnu-emacs@gnu.org; Mon, 01 Jul 2019 05:14:09 -0400 Original-Received: from mail.mojserwer.eu ([195.110.48.8]:53640) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hhsNz-0001a7-At for help-gnu-emacs@gnu.org; Mon, 01 Jul 2019 05:14:07 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by mail.mojserwer.eu (Postfix) with ESMTP id 3C0AEE6665; Mon, 1 Jul 2019 11:14:01 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at mail.mojserwer.eu Original-Received: from mail.mojserwer.eu ([127.0.0.1]) by localhost (mail.mojserwer.eu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qRpz2hgCLnI2; Mon, 1 Jul 2019 11:13:57 +0200 (CEST) Original-Received: from localhost (83.25.50.144.ipv4.supernova.orange.pl [83.25.50.144]) by mail.mojserwer.eu (Postfix) with ESMTPSA id 27BB4E63F1; Mon, 1 Jul 2019 11:13:57 +0200 (CEST) In-reply-to: <20190701081716.GA11749@protected.rcdrun.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 195.110.48.8 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:121083 Archived-At: On 2019-07-01, at 10:17, Jean Louis wrote: > * Marcin Borkowski [2019-07-01 09:22]: >> >> On 2019-07-01, at 00:32, Jean Louis wrote: >> >> > Hello, >> > >> > I would like to know how to make in Emacs Lisp the >> > equivalent function to what I have here below in >> > Common Lisp. >> > >> > I wish to feed a string as stream to a command and >> > to get the string output. >> >> How about `shell-command-to-string'? > > That one runs only shell command, without the > input. > > I am looking to something equivalent to shell > > cat | markdown > Hello > ===== > > ## Hello > CTRL-D here >

Hello

> >

Hello

> > I have to process thousands of files, I would not > like writing to hard disk the feed data for > processing to spare the hard disk. I'm not sure I get it. If you have your data in _files_, why don't you (shell-command-to-string "cat | ...") ? Even if you only have it as string within Emacs, you could probably try (format "echo '%s'" ...), though this might involve escaping problems. > As I cannot find solution yet in emacs lisp how to > feed some string as input to the shell command, I > am using now the virtual memory in /run/user/$UID > as this way the hard disk is spared of writing > files. > [...] > I have solved my problem. But if somebody knows > how to feed the string to command as its input, > without writing to file system, let me know. Frankly, I'd also like to learn how to solve this. The above suggestions are just my 2cents, which probably do not answer your question exactly, but might inspire someone to get a proper solution... Best, -- Marcin Borkowski http://mbork.pl