K.S. Bhaskar via plug on 10 Sep 2020 10:21:43 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [PLUG] Awk *language*: was Win Subsystem for Linux2 broken |
On Thu, Sep 10, 2020 at 12:10:33PM -0400, Rich Freeman via plug wrote:
> On Thu, Sep 10, 2020 at 12:01 PM Walt Mankowski via plug
> <plug@lists.phillylinux.org> wrote:
> >
> > I used to still use awk for splitting files since the syntax was a bit
> > simpler than Perl, but cut(1) does the simple cases even more simply,
> > and for anything else I use `perl -a`.
>
> Main thing I do with awk is use it to pull one field out of a record.
>
> Stuff like:
> zfs list -t snapshot -r offline1/storage | awk '{ print $1}' | tail -n
> +2 | xargs -n 1 zfs destroy
>
> This pulls up a list of snapshots, grabs just the first field of each,
> strips the headers, then deletes each one.
>
> Is there an easier way to pull one field (not necessarily the first)
> out of a list?
For simple things I use cut(1). To pull out the first field you use
cut -f1
cut defaults to splitting on tabs. If you wanted to split on, say,
commas, you'd say
cut -d, -f2
to pull the second field from a CSV file. I just ran that command in a
pipeline this morning!
Unfortunately cut doesn't have a way to split on regular expressions,
so it doesn't work when there are a variable number of spaces between
fields. For your example I'd probably use perl instead:
perl -aE 'say $F[0]'
Or maybe it's $F[1]; I don't remember if $1 is the first or second
field in awk.
___________________________________________________________________________
Philadelphia Linux Users Group -- http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug
___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug