2016-04-13 9 views
0

文字列の改行をエスケープする方法はありますか?私は約80文字でコードの行を壊そうとしますが、時にはそれらの行より長いメッセージを書きます。改行をエスケープする方法はありますか?私は複数の文字列を1つに貼り付けたくない。最大行長のために文字列の改行をエスケープする

cat(sprintf(
    '%s Re-quantify was set to "True"! Please reanalyse data with correct settings and start the script again.\n', 
    date())) 

そして、私は新しい行を追加する場合、メッセージはまた、二行

cat(sprintf(
    '%s Re-quantify was set to "True"! Please reanalyse data 
with correct settings and start the script again.\n', 
    date())) 

私はpasteは私の問題を解決しますが、コードは私が考えて読みにくくなることを承知していますで印刷されます。

cat(sprintf(
    paste('%s Re-quantify was set to "True"! Please reanalyse data', 
     'with correct settings and start the script again.\n'), 
    date())) 

私はインラインでできることはありますか?改行をエスケープするのに\を使うだけでは機能しませんでした。

+0

バックスラッシュは、周りのテキストをラップするために動作するはずです。 – Gopala

+0

@Gopala 2番目の例で 'data'の後ろに' backslash'を追加すると、2行の出力が得られます。 – drmariod

答えて

2

もっとも洗練されたソリューションではないかもしれませんが、機能します。バックスペースで新しい行を始めることができます。

cat(sprintf(
    '%s Re-quantify was set to "True"! Please reanalyse data 
    \b with correct settings and start the script again.\n', 
    date())) 

これは、出力の新しい行を削除するだけです。

またcatが複数の引数を受け入れ、セパレータとしてスペースとそれらを組み合わせたという事実から利益ができます

cat(sprintf('%s', date()), 
    'Re-quantify was set to "True"! Please reanalyse data', 
    'with correct settings and start the script again.\n') 
+0

いいえ、本当にエレガントではありません:-)このソリューションに感謝します。どのように他の人がこれを解決するのですか?長い線を保つ?または貼り付けの方法を使用しますか? – drmariod

+0

私は通常、 'cat()'にいくつかの文字列を入れます。しかし、これはあなたがいくつかの 'sprintf()'コールを使うよう強制するかもしれません。私はこれを私のソリューションに追加しました。 – Stibu

+0

ええ、まだ少し醜いが、これを知っていなかった...まだ他の解決策がないかと疑問に思う。 – drmariod

関連する問題