Quelle commande puis-je utiliser pour diviser entrée comme ceci:
foo:bar:baz:quux
dans ça?
foo
bar
baz
quux
J'essaie de comprendre la commande cut
, mais il semble fonctionner uniquement avec des quantités fixes d'entrée, telles que "1000 premiers caractères" ou "premiers 7 champs". Je dois travailler avec une entrée arbitraire longue.
Il y a quelques options:
tr : \\n
sed 's/:/\n/g'
(Avec GNU SED)awk '{ gsub(":", "\n") } 1'
Vous pouvez également faire cela dans Pure bash
:
while IFS=: read -ra line; do
printf '%s\n' "${line[@]}"
done
$ line=foo:bar:baz:quux
$ words=$(IFS=:; set -- $line; printf "%s\n" "$@")
$ echo "$words"
foo
bar
baz
quux