IFSを使用して文字列を文字に分割し、スペース/ヌル、スペース、および文字なしで読み取る方法 - ?

IFSを使用して文字列を文字に分割し、スペース/ヌル、スペース、および文字なしで読み取る方法 - ?

私はロープを持っています-w o rd。重要ではないので、配列または配列に分割
する必要があります。私は次を試しました w o r d'w' 'o' 'r' 'd'

IFS='\0- ' read -a string <<< "-w o rd"  
echo ${string[*]}

rd分けられませんでした。どうやって作ることができますか?

ベストアンサー1

IFSを使用してbashで何も分割することはできません(持つrd の間には文字がありませんrd。スペースや文字はヌル文字と変わりません。

各文字を配列の別々の要素として望む場合、私が考えることができる1つの方法は、各文字を個別に読み込み、それを配列に追加することです(そしてIFSを使用してスペースと削除する-)。

bash-4.4$ while IFS=' -' read -n1 c ; do [[ -n $c ]] && foo+=("$c"); done <<<"-w o rd"
bash-4.4$ declare -p foo
declare -a foo=([0]="w" [1]="o" [2]="r" [3]="d")

おすすめ記事