附加多行制表符分隔的文本形式 bash 带有 EOF、EOT、EOL 的脚本
Append multiline tab delimited text form bash script with EOF, EOT, EOL
我想在特定字符串出现后插入多行文本。
预期输出为:
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
除了第一行以外的所有行都用制表符分隔。
我不想用几个回声命令来做到这一点。
我更喜欢 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
但是第二个选项卡被忽略了,没有写入我的文件。
bash 允许以下语法,类似于 EOF,其中单引号中的字符串根本不被修改:
cat >> /etc/conf/conf.conf <<<'configuration options
<tab>option 1
<tab>option 2
<tab>option 3
<tab>option 4
'
从这一行中删除破折号 (-
):
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_
实际上我发现它是上述答案的组合:
为了保留制表符分隔符,我不得不删除 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
我想在特定字符串出现后插入多行文本。 预期输出为:
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
除了第一行以外的所有行都用制表符分隔。 我不想用几个回声命令来做到这一点。 我更喜欢 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
但是第二个选项卡被忽略了,没有写入我的文件。
bash 允许以下语法,类似于 EOF,其中单引号中的字符串根本不被修改:
cat >> /etc/conf/conf.conf <<<'configuration options
<tab>option 1
<tab>option 2
<tab>option 3
<tab>option 4
'
从这一行中删除破折号 (-
):
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_
实际上我发现它是上述答案的组合: 为了保留制表符分隔符,我不得不删除 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