web-dev-qa-db-ja.com

文字列内の文字Xを文字Yでbashに置き換えます

bashスクリプトを作成していますが、文字列変数の1つの文字を別の文字に置き換えたいのですが。

例:

#!/bin/sh

string="a,b,c,d,e"

そして、,\nに置き換えます。

出力:

string="a\nb\nc\nd\ne\n"

どうすればできますか?

4
Joozty

非常に多くの方法がありますが、ここにいくつかあります:

$ string="a,b,c,d,e"

$ echo "${string//,/$'\n'}"  ## Shell parameter expansion
a
b
c
d
e

$ tr ',' '\n' <<<"$string"  ## With "tr"
a
b
c
d
e

$ sed 's/,/\n/g' <<<"$string"  ## With "sed"
a
b
c
d
e

$ xargs -d, -n1 <<<"$string"  ## With "xargs"
a
b
c
d
e
14
heemayl