unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Xah Lee <xahlee@gmail.com>
To: help-gnu-emacs@gnu.org
Subject: Re: how to manipulate data like awk or perl when visiting a file
Date: Sun, 28 Dec 2008 22:14:57 -0800 (PST)	[thread overview]
Message-ID: <50783260-3503-4714-b7f6-96d56b020a46@f40g2000pri.googlegroups.com> (raw)
In-Reply-To: mailman.3478.1230524085.26697.help-gnu-emacs@gnu.org

On Dec 28, 8:14 pm, rea...@newsguy.com wrote:
> I want to get a leg up on how I might manipulate a file like I can
> with shell tools or awk/perl.
>
> Examples:  I want to display only the first field of lines 30 thru 75
>            I want to reverse field 1 and 5 and print those plus 6 of
>            each line.
>            I want to add up the numbers that appears in field 7 of
>            lines 11 through 28 printing the total to ~/sumtot.txt
>
> I'd like to see a few basic examples and maybe I'll be able to get the
> idea enough to do some of that when I need to.
>
> I don't really want to start way at the beginning of elisp to get
> started.   I hoped maybe there are some examples like that available
> in existing info documents.
>
> I haven't noticed much talk here about those kinds of chores so maybe
> elisp isn't a good choice for that?


do you want to do this as interactive use or do you mean how to do it
in elisp?

For elisp, here's a example:

• How To Process A File Line By Line In Elisp
  http://xahlee.org/emacs/elisp_process_lines.html

for your task, perhaps it's easier to simply read all content in a
file, use split-string so that each line becomes a list item, then use
split-string again on each item so that you got the fields.

Of course, you can also just write your code in awk or perl, and have
a emacs wrapper to call them as emacs commands. See

• Elisp Wrapper For Perl Scripts
  http://xahlee.org/emacs/elisp_perl_wrapper.html

For interactive use, depending what specifically what you want to do,
but it might be easier to simply use shell-command or shell-command-on-
region, and call your sed awk.

  Xah
∑ http://xahlee.org/

  parent reply	other threads:[~2008-12-29  6:14 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.3478.1230524085.26697.help-gnu-emacs@gnu.org>
2008-12-29  6:02 ` how to manipulate data like awk or perl when visiting a file rustom
2008-12-29  6:19   ` poppyer
2008-12-29  6:14 ` Xah Lee [this message]
2008-12-30  6:59   ` Harry Putnam
     [not found]   ` <mailman.3532.1230620390.26697.help-gnu-emacs@gnu.org>
2008-12-30 14:57     ` Ted Zlatanov
2008-12-29  4:14 reader
2008-12-30 14:34 ` Kevin Rodgers
     [not found] ` <mailman.3568.1230647701.26697.help-gnu-emacs@gnu.org>
2008-12-30 15:02   ` Richard Riley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50783260-3503-4714-b7f6-96d56b020a46@f40g2000pri.googlegroups.com \
    --to=xahlee@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).