[解決済み] 余分なスペースを含む複数行の文字列(インデントが保持される)
2022-03-17 06:22:02
質問
以下のようなあらかじめ用意されたテキストをファイルに書き出したい。
text="this is line one\n
this is line two\n
this is line three"
echo -e $text > filename
こんな感じで期待しています。
this is line one
this is line two
this is line three
しかし、これを得た。
this is line one
this is line two
this is line three
の後にスペースがないことを確認しています。
\n
しかし、余分なスペースはどのように出てくるのでしょうか?
どのように解決するのですか?
この目的には、Heredocの方が便利そうですね。のようなコマンドインタープリタプログラムに複数のコマンドを送信するのに使います。 ex または 猫
cat << EndOfMessage
This is line 1.
This is line 2.
Line 3.
EndOfMessage
の後の文字列は
<<
は停止する場所を示しています。
これらの行をファイルに送るには、次のようにします。
cat > $FILE <<- EOM
Line 1.
Line 2.
EOM
また、これらの行を変数に格納することもできます。
read -r -d '' VAR << EOM
This is line 1.
This is line 2.
Line 3.
EOM
これは、その行を変数
VAR
.
印刷するときは、変数を引用符で囲むと改行文字が表示されないので、忘れないようにしてください。
echo "$VAR"
さらに良いのは、インデントを利用して、コードの中でより目立たせることです。今回は、単に
-
の後に
<<
でタブを表示させないようにします。
read -r -d '' VAR <<- EOM
This is line 1.
This is line 2.
Line 3.
EOM
しかし、その場合、コードのインデントにはスペースではなくタブを使用する必要があります。
関連
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] Bashで、文字列がある値で始まっているかどうかを確認するにはどうすればよいですか?
-
[解決済み] bashで "cat << EOF "はどのように動作するのですか?
-
[解決済み] SwiftでIntをStringに変換する
-
[解決済み] Goの文字列を印刷せずにフォーマットしますか?
-
[解決済み] Go でファイルを一行ずつ読む
-
[解決済み】大文字と数字を含むランダムな文字列の生成
-
[解決済み】複数のコマンドのBash終了状態を効率的に確認する方法
-
[解決済み】なぜ、Swiftの文字列では、?のような絵文字が奇妙に扱われるのですか?
-
[解決済み] Goにはstartswith,endswith関数がない?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] bashで "cat << EOF "はどのように動作するのですか?
-
[解決済み] 余分なスペースを含む複数行の文字列(インデントが保持される)
-
[解決済み] Bashで複数行の文字列を出力するには?
-
[解決済み】文字列のベクトルに対するjoin演算子に相当するものは何ですか?
-
[解決済み] Base64の長さ計算?
-
[解決済み] GroovyでStringが空白だけでなく非Nullかどうかを判断するには?
-
[解決済み] シェルで文字列の最後の文字を取得する方法は?
-
[解決済み] Swift で文字列から最初の文字を削除する最も簡潔な方法は何ですか?
-
[解決済み] 変数(オブジェクト)名をStringに変換する方法【重複あり
-
[解決済み] dartの文字列の最初の文字を大文字にするには?