Welcome to the Linux Foundation Forum!

unexpand command not working

adriabp
adriabp 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]#

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:
    [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]# 
    

    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

Categories

Upcoming Training