Welcome to the Linux Foundation Forum!

unexpand command not working

Posts: 1
edited January 2016 in Command Line

Hi all, I don't know if I understood the command properly but I thought it was suppose to convert spaces into tabs in a file, here's how I'm using it:

[root@localhost people]# cat peoplelist1.txt
23 female Bianca Princeton
50 male George Yale
30 female Karen Harvard
35 male Andrew Berkeley
[root@localhost people]#
[root@localhost people]# unexpand peoplelist1.txt > peoplelisttab.txt
[root@localhost people]#
[root@localhost people]# cat peoplelisttab.txt
23 female Bianca Princeton
50 male George Yale
30 female Karen Harvard
35 male Andrew Berkeley
[root@localhost people]#

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Comments

  • yes you are right.. im having same results :/
  • Hi,

    Have you checked the output of the file using 'od' this will show you if the formatting is there and for some reason you just arent seeing it when using 'cat'
  • Hi,

    Have you checked the output of the file using 'od' this will show you if the formatting is there and for some reason you just arent seeing it when using 'cat'

    Matt will you please visualize how you are referring od to use.. im just getting octal values..
  • adriabp wrote:
    Hi all, I don't know if I understood the command properly but I thought it was suppose to convert spaces into tabs in a file, here's how I'm using it:
    1. [root@localhost people]# cat peoplelist1.txt
    2. 23 female Bianca Princeton
    3. 50 male George Yale
    4. 30 female Karen Harvard
    5. 35 male Andrew Berkeley
    6. [root@localhost people]#
    7. [root@localhost people]# unexpand peoplelist1.txt > peoplelisttab.txt
    8. [root@localhost people]#
    9. [root@localhost people]# cat peoplelisttab.txt
    10. 23 female Bianca Princeton
    11. 50 male George Yale
    12. 30 female Karen Harvard
    13. 35 male Andrew Berkeley
    14. [root@localhost people]#

    This command, "unexpand" is a weird one. After experimenting, I found that if you do not set the number of characters (or spaces) for the tab to jump, the spaces will stick with the default value of 8. Meaning, the tab will be treated as the spacebar. This is what became interesting.

    I created a test file, wrote two sentences of two words each. After the first word in the sentence, i jumped 3 spaced to the right writing, using the space bar to write the second word. I used "unexpand" in a terminal with no options. The results were printed to standard output and it looked the same. I even opened the file in gedit. No difference.I played further and used the "-a" and the "-t" options. When I set the "-t" to 1, meaning "move tab 1 character across", the space between the words increased. I opened the file using gedit and again, the spaces were bigger in the file. Moving across the spaces with the arrow keys, it felt as if I was tabbing.

    Going back to what Matt said, I believe the character number means how many bytes to use to move across the space. So it you use "unexpand" with no options, then you are telling tab to use the 8 characters in a byte to convert the spaces to tabs which you. If you set the "-t" option to one, you are telling "unexpand" to treat every number of a spaces as a whole byte increasing the space between words.

    Please correct me if I am wrong.

    expand manpage

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training