BashでIFSを2バイト値に設定するにはどうすればよいですか?
IFS=',;'
区切り記号は、区切り記号の代わりに単純な部分と/または単純な2つの,
部分の間にある各部分ですか?ソリューションを提供できるようにシミュレーション/解決方法を実行するには?前にありがとう;
,;
ベストアンサー1
zsh
代わりに(plit用)パラメータ拡張フラグをbash
使用して切り替えることができます。s
s
$ string='foo,;bar,;,;baz'
$ words=("${(@s[,;])string}")
$ typeset -p words
typeset -a words=( foo bar '' baz )
これは分けるいいえ定義するはIFS分割(単一文字のみを含む)ではなく空の文字列foo,;
に分割されます。foo
foo
bash
また、bash
(and zsh
、すべてのシェルではありませんが)でスプレー数値~の$IFS
, いいえバイト。たとえば、を使用すると、IFS='é'
2バイトでエンコードされたロケール(たとえば、文字が最も一般的なUTF-8にマップされるロケール)でもStéphane
分割されます。St
phane
é