shell将多行文本重定向到文件

本文介绍了如何在Shell脚本中利用Here Document结构将多行文本内容重定向并写入到文件中,这对于批量处理和配置文件自动化非常有用。

在shell中,使用Here Document方式将文本重定向到文件,格式如下:

(
cat << EOF
要写的文本
EOF
) > 目标文件

示例test.sh:

#! /bin/sh
(
cat << EOF
{
    "warehouse":"$1",
    "ipaddr": "$2",
    "bindaddr": "$2:9995",
    "repopath": "./repo/",
        "kafka": "100.69.168.38:9095",
        "topic": "AgentHeartBeat",
        "partition": "1"
}
EOF
) >  agent/conf/agent.conf.json1

执行"test.sh ys 192.168.1.80"的结果:

[root@lvs00 monitor-agent]# cat agent/conf/agent.conf.json1
{
    "warehouse":"ys",
    "ipaddr": "192.168.1.80",
    "bindaddr": "192.168.1.80:9995",
    "repopath": "./repo/",
        "kafka": "192.168.1.2:9095",
       
### 回答1: 可以使用以下的Shell脚本来创建文件列表并添加多行文本: ``` #!/bin/bash # 创建文件列表 files=("file1.txt" "file2.txt" "file3.txt") # 添加多行文本到每个文件 for file in "${files[@]}" do cat << EOF >> "$file" 第一行文本 第二行文本 第三行文本 EOF done ``` 这个脚本会创建一个包含三个文件名的数组,然后使用一个循环来遍历数组中的每个文件名。在每个文件中,使用`cat`命令和`<<`操作符来添加多行文本。注意,`EOF`是一个标记,用于指示文本块的开始和结束。 ### 回答2: 创建文件列表并添加多行文本Shell脚本可以通过以下步骤实现: 1. 首先,我们需要创建一个文件列表,用于存储文件名。可以使用`touch`命令创建一个文件,例如:`touch filelist.txt` 2. 接下来,我们可以使用`echo`命令将多行文本添加到文件中。例如,添加三行文本可以使用以下命令: ``` echo "第一行文本" >> filelist.txt echo "第二行文本" >> filelist.txt echo "第三行文本" >> filelist.txt ``` 其中`>>`表示追加文本文件的末尾。 3. 如果你要添加大量的文本,可以使用循环结构,将文本行作为循环变量,并使用循环来逐行添加到文件中。例如,添加十行文本可以使用以下Shell脚本: ``` for i in {1..10}; do echo "第${i}行文本" >> filelist.txt done ``` 4. 最后,你可以使用`cat`命令来查看文件的内容,以确保文本已成功添加到文件列表中。例如:`cat filelist.txt` 通过上述步骤,你可以创建一个文件列表,并将多行文本添加到该文件中。记得根据实际需要修改文件名和文本内容。 ### 回答3: 创建文件列表并添加多行文本Shell脚本可以使用以下代码: ```shell #!/bin/bash # 创建一个文件列表 files=("file1.txt" "file2.txt" "file3.txt") # 遍历文件列表来添加多行文本 for file in "${files[@]}" do echo "This is line 1." >> $file echo "This is line 2." >> $file echo "This is line 3." >> $file done ``` 首先,我们使用`files`数组来创建一个包含所有文件名的文件列表。这里我们创建了三个文件:`file1.txt`,`file2.txt`和`file3.txt`。 然后,使用`for`循环来遍历文件列表中的每个文件。在循环中,我们使用重定向运算符`>>`将每行文本追加到对应的文件中。 以上代码将向每个文件添加三行文本,内容分别是: ``` This is line 1. This is line 2. This is line 3. ``` 运行该脚本后,即可完成创建文件列表并添加多行文本的操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值