スペースの入った行をスペース以外の区切り文字で分割してコマンド引数に渡したい


`:` で区切られたファイル(`/etc/passwd`)の各行から 6列目の値 (= home directory) を取り出して、  
以下のようにコマンドに渡したいです。

**/etc/passwd**

[code]

    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    ec2-user:x:1000:1000:EC2 Default User:/home/ec2-user:/bin/bash
    
[/code]

**実行したいコマンド**

[code]

    command /var/empty/sshd /home/ec2-user
    
[/code]

`split` 系の記事を見るとどれも `tr ',' '\n'`
でスペースに分けてゴニョゴニョするものばかりなので、元々スペースを含むファイルだとうまく行きません。

Python や Ruby
のワンライナーを使ってしまえば簡単なんですが、プロビジョニングに使いたいのでそれらがインストールされてないサーバーにも適用したく、できれば基本コマンドだけで実現する方法はないでしょうか。




「基本コマンド」ってどのへんまでを想定しているのかわからなかったのですが、  
awkとxargsを使えば次のようになります。  
(とりあえず「echo」を付けましたがcommandを直接実行するなら「echo」は外してください)

[code]

    $ awk -F: '{print $6}' /etc/passwd | xargs echo command
    
[/code]




シェルスクリプトで実現するならば、  
シェル変数「`IFS`」を「`:`」にすることで、「`:`」を区切り文字として`read`で各フィールドを読み込めると思います。

[code]

    # 例
    cat /etc/passwd | while IFS=: read user x uid gid username homedir loginshell ; do
        # 第6フィールドの値をcommandに渡す
        command "${homedir}"
    done
    
[/code]

