2016-12-27 4 views
0

特定の文字列の後に複数行のテキストを挿入したい。 予想される出力は次のようになります。最初から除くEOF、EOT、EOLで複数行タブ区切りテキスト形式のbashスクリプトを追加

configuration options: 
<tab>option 1 
<tab>option 2 
<tab>option 3 
<tab>option 4 
<tab>option 5 
<tab>option 6 
<tab>option 7 
<tab>option 8 
<tab>option 9 
<tab>option 10 
<tab>option 11 
<tab>option 12 

すべての行は、タブで区切られています。 私はいくつかのechoコマンドでこれをしたくありません。 私はEOF、EOT、EOLが好きですが、これらはタブを書きません。

cat >> /etc/conf/conf.conf <<-EOF 
    <tab>configuration options 
    <tab><tab>option 1 
    <tab><tab>option 2 
    <tab><tab>option 3 
    <tab><tab>option 4 
    <tab><tab>option 5 
    <tab><tab>option 6 
    <tab><tab>option 7 
    <tab><tab>option 8 
    <tab><tab>option 9 
    <tab><tab>option 10 
    <tab><tab>option 11 
    <tab><tab>option 12 
    EOF 

しかし、2番目のタブは無視され、私のファイルに書き込まれていません。

現在、私はそれを使用します。

+0

期待される出力とは何ですか? –

+0

最小限の入力と検証可能な出力を提供します。 – Inian

答えて

0

をこの行からダッシュ(-)を削除します。

cat >> /etc/conf/conf.conf <<-EOF 

そして、 、おそらく、EOFのより良い名前を使用してください:

cat >> /etc/conf/conf.conf <<_list_of_options_ 
configuration options 
<tab>option 1 
<tab>option 2 
<tab>option 3 
<tab>option 4 
<tab>option 5 
<tab>option 6 
<tab>option 7 
<tab>option 8 
<tab>option 9 
<tab>option 10 
<tab>option 11 
<tab>option 12 
_list_of_options_ 
0

bashは、単一引用符で囲んだ文字列が全く変更されていないEOFに似て、次の構文、ことができます:

cat >> /etc/conf/conf.conf <<<'configuration options 
<tab>option 1 
<tab>option 2 
<tab>option 3 
<tab>option 4 
' 
0

実際に私はそれを見つけました上記の回答の組み合わせ:私は削除する必要がありましたタブ区切り保つために 「を - 」EOFの前に、各ラインから一つのタブを削除します。

cat >> /etc/conf/conf.conf <<EOF 
configuration options 
<tab>option 1 
<tab>option 2 
<tab>option 3 
<tab>option 4 
<tab>option 5 
<tab>option 6 
<tab>option 7 
<tab>option 8 
<tab>option 9 
<tab>option 10 
<tab>option 11 
EOF 
関連する問題