区切り文字で長い行を分割します。

区切り文字で長い行を分割します。

次のように入力を分割するにはどのコマンドを使用できますか?

foo:bar:baz:quux

これに入りますか?

foo
bar
baz
quux

コマンドを見つけようとしていますが、cut「最初の1000文字」や「最初の7フィールド」など、固定量の入力でのみ機能しているようです。ランダムに長い入力を処理する必要があります。

ベストアンサー1

いくつかのオプションがあります:

  • tr : \\n
  • sed 's/:/\n/g'(GNU sedを使用)
  • awk '{ gsub(":", "\n") } 1'

pureでもこれを行うことができますbash

while IFS=: read -ra line; do
    printf '%s\n' "${line[@]}"
done

おすすめ記事