文字列を区切り文字(文字列自体でもある)で区切られた部分文字列に分割したいと思います。
私はこれをどうすることができますか?
ちょうどbashを使用しますか? (私の主な関心でもあるミニマリズムのために)
それとも、特定のテキスト処理プログラムが許可されていますか? (プログラム利用時の便宜のため)
ありがとうございます。
簡単な例、
- 、 に分けられます。
1--123--23
--
1
123
23
- 合計に分けて
1?*123
?*
1
123
ベストアンサー1
IFS
とを使用する純粋なbashソリューションですread
。文字列には以下を含めないでください(またはIFSの場合は残念ながら機能しませんが、たとえば機能しない$'\2'
他の項目)。$'\0'
$'\666'
#!/bin/bash
split_by () {
string=$1
separator=$2
tmp=${string//"$separator"/$'\2'}
IFS=$'\2' read -a arr <<< "$tmp"
for substr in "${arr[@]}" ; do
echo "<$substr>"
done
echo
}
split_by '1--123--23' '--'
split_by '1?*123' '?*'
またはPerlを使用してください。
perl -E 'say for split quotemeta shift, shift' -- "$separator" "$string"