Shell
在分隔符上分割長線
我可以使用什麼命令來拆分輸入,如下所示:
foo:bar:baz:quux
進入這個?
foo bar baz quux
我試圖弄清楚該
cut
命令,但它似乎只適用於固定數量的輸入,例如“前 1000 個字元”或“前 7 個欄位”。我需要使用任意長的輸入。
有幾個選項:
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
$ line=foo:bar:baz:quux $ words=$(IFS=:; set -- $line; printf "%s\n" "$@") $ echo "$words" foo bar baz quux