[ale] swap 2 fields (in a tabbed file)?

John Wells jb at sourceillustrated.com
Wed Jan 29 15:16:42 EST 2003


sort -t '     ' --key=2.1 list.txt

type "sort -t '", then hit ctrl+v, then press tab, the continue with "'
--key=2.1 list.txt".

That works.

John



Christopher Bergeron said:
> Ok, a sample of the data is attached. I need to sort by the alphabetical
>  name of the second field I can do this easily using sort if I can swap
> the fields from:
>
> X\tY\n
> to:
> Y\tX\n
>
> Your awk script worked, but it considered the ^M as a field it looks
> like because it produced:
> Y\nX\t
>
> So i have a feeling we're very close. To the others that offered
> suggestions, I appreciate it. I'm partial to learning awk so for this
> run, i'm going to use it.
>
>
> Thanks,
> CB
>
>
>
>
>
> Geoffrey wrote:
>
>> Might you post one line of input to the list as an attachment? I (and
>> I think others) are having a hard time determining the actual format.
>> When you start dealing with funky (technical term) character combos,
>> like carriage return and newline, perl is likely to be the easiest
>> solution.
>>
>>
>> Christopher Bergeron wrote:
>>
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Thanks Geoffrey! I think I've almost got it, but my output is
>>> appearing like this:
>>>
>>> GE CAPITAL CONSUMER LEND\n\tAFS74
>>> GEWARDS\n\tAFS75
>>>
>>> Instead of:
>>> GE CAPITAL CONSUMER LEND\tAFS74\n
>>> GEWARDS\tAFS75\n
>>>
>>> I have a feeling it's a simple change, but since I'm new to awk I'm a
>>> slow learner...
>>>
>>> Thanks again for any leads,
>>> - -CB
>>>
>>>
>>> Geoffrey wrote:
>>>
>>> | Use awk:
>>> |
>>> | awk -F '\t' '{printf "%s\t%s\n", $2, $1}'
>>> |
>>> | Christopher Bergeron wrote:
>>> |
>>> |> -----BEGIN PGP SIGNED MESSAGE-----
>>> |> Hash: SHA1
>>> |>
>>> |> Does anyone know how I can swap 2 fields in a tab delimited file
>>> |> containing 2 fields?
>>> |>
>>> |> Here's an example of my data:
>>> |> ~ <TAB>WOODSTOCK OUTLET<CR>
>>> |> AF100<TAB>METRO AUDIO DYNAMI<CR>
>>> |>
>>> |> What I'd like to do is swap the 2 fields (or do a `sort` based on
>>> the |> second field!) such that I end up with this:
>>> |> WOODSTOCK OUTLET<TAB> <CR>
>>> |> METRO AUDIO DYNAMICS<TAB>AF100<CR>
>>> |>
>>> |> Does anyone know of a way I can accomplish this? I tried using cut
>>> |> - -f2,1 -d"\t" but no adeu...
>>> |>
>>> |> As always, much thanks in advance!
>>> |> - -CB
>>> |> -----BEGIN PGP SIGNATURE-----
>>> |> Version: GnuPG v1.2.1 (MingW32)
>>> |> Comment: Using GnuPG with Netscape - http://enigmail.mozdev.org |>
>>> |> iD8DBQE+OBDCTKCy0t3zQgURAjNTAJ4+scGLwJ68zyWNCQi3zOioVQHYSgCgsbsd
>>> |> OQXrEikvL57cV8/Tj1vuqLg=
>>> |> =3GQm
>>> |> -----END PGP SIGNATURE-----
>>> |>
>>> |>
>>> |> _______________________________________________
>>> |> Ale mailing list
>>> |> Ale at ale.org
>>> |> http://www.ale.org/mailman/listinfo/ale
>>> |>
>>> |>
>>> |
>>> -----BEGIN PGP SIGNATURE-----
>>> Version: GnuPG v1.2.1 (MingW32)
>>> Comment: Using GnuPG with Netscape - http://enigmail.mozdev.org
>>>
>>> iD8DBQE+OBtfTKCy0t3zQgURAghVAKDGTNNK40g+4Jdl39eDsVPAeAgiZQCdF4Gg
>>> kncmOklKRZ00rGmPskLaj5Y=
>>> =577v
>>> -----END PGP SIGNATURE-----
>>>
>>>
>>> _______________________________________________
>>> Ale mailing list
>>> Ale at ale.org
>>> http://www.ale.org/mailman/listinfo/ale



_______________________________________________
Ale mailing list
Ale at ale.org
http://www.ale.org/mailman/listinfo/ale






More information about the Ale mailing list