BashでIFSを2バイト値に設定する

BashでIFSを2バイト値に設定する

BashでIFSを2バイト値に設定するにはどうすればよいですか?

IFS=',;'

区切り記号は、区切り記号の代わりに単純な部分と/または単純な2つの,部分の間にある各部分ですか?ソリューションを提供できるようにシミュレーション/解決方法を実行するには?前にありがとう;,;

ベストアンサー1

zsh代わりに(plit用)パラメータ拡張フラグをbash使用して切り替えることができます。ss

$ string='foo,;bar,;,;baz'
$ words=("${(@s[,;])string}")
$ typeset -p words
typeset -a words=( foo bar '' baz )

これは分けるいいえ定義するはIFS分割(単一文字のみを含む)ではなく空の文字列foo,;に分割されます。foofoobash

また、bash(and zsh、すべてのシェルではありませんが)でスプレー数値~の$IFS, いいえバイト。たとえば、を使用すると、IFS='é'2バイトでエンコードされたロケール(たとえば、文字が最も一般的なUTF-8にマップされるロケール)でもStéphane分割されます。Stphaneé

おすすめ記事