非常によく似た質問を見ましたが、問題を解決できませんでした sed でカンマを改行に置き換えます
文字列内の文字を変換しようとし:ています。これは私が試したものです:
echo -e 'this:is:a:test' | sed "s/\:/'\n'/g"
しかし、これは : を n に置き換えます。私もtrを試しましたが、同じ結果が得られました。パイプされた後に -e が表示されないため、新しい行が認識されないと思います。
どんな助けでも大歓迎です。
非常によく似た質問を見ましたが、問題を解決できませんでした sed でカンマを改行に置き換えます
文字列内の文字を変換しようとし:ています。これは私が試したものです:
echo -e 'this:is:a:test' | sed "s/\:/'\n'/g"
しかし、これは : を n に置き換えます。私もtrを試しましたが、同じ結果が得られました。パイプされた後に -e が表示されないため、新しい行が認識されないと思います。
どんな助けでも大歓迎です。
echo 'this:is:a:test' | tr : \\n
POSIX 準拠の trはすべて、\nエスケープ シーケンスをサポートします。ただし、エスケープ シーケンスを引用またはエスケープするように注意する必要があります (上の二重のバックスラッシュ)。
echoの-e引数は、echo の引数には影響しません。
すでに変数に文字列があると思います。これは、パラメーター展開置換演算子を使用して、引用符で囲ま:れた文字列を使用して指定されたすべてを改行に置き換え$'...'ます。どちらの機能もbash標準の拡張機能であり、別のシェルでは機能しない場合があります。
$ foo="this:is:a:test"
$ bar="${foo//:/$'\n'}"
$ echo "$bar"
this
is
a
test
おそらくPerlはオプションですか?
echo -e 'this:is:a:test' | perl -p -e 's/:/\n/g'