Linux一些个更换一个数字并生成一个.xml的文件脚本

现在假设有一句话   print(“*”)     *号为要替换的内容

我这里有一个文件  文件里有很多数字 123,124,125,126,127 

需要一个脚本,自动把123替换*然后生成一个.xml的文件夹,以此类推。

我没有太明白什么意思,你最后得到的是文件夹里面都是.xml文件,每个xml文件里面的内容都是这样吗?

# 123 代替 *
print("123")
# 124 代替 *
print("124")

 

方案如下:

file.sh脚本:

#!/bin/bash
while read line
do
    content='print("*")'
    echo ${content//\*/${line}} > $line.xml
done < data.txt

data.txt文件:

123
124
125
126
127

 

执行sh file.sh后,内容如下:

 

file.sh脚本:

#!/bin/bash
while read line
do
    content='print("*")'
    echo ${content//\*/${line}} > $line.xml
done < data.txt

data.txt文件:

123
124
125
126
127

 

执行sh file.sh后,内容如下:

你这需求有点奇葩啊,说的还不清晰,我先梳理一下,就算不是改改就行。

1. 有一个数据源文件,里面是用逗号分隔的元素。

2. 有一个模板字符串,使用*作为占位符(有且只有一个占位符)。

3. 循环使用数据源中的元素填充模板得到目标字符串。

4. 循环使用【数据源中的元素.xml】作为文件名,目标字符串作为文本内容生成一个文件放到指定目录下。

#数据源
echo '123,124,125,126,127,128 ' > ds.txt
#数据源字符串
DS=$(cat ds.txt)
#模板
TMP='print("*")'
#输出文件夹
OUT='./out'
mkdir -p ${OUT}
#数据数组
DTA=(${DS//,/ })
#生成文件
for DT in ${DTA[@]}; do echo ${TMP//\*/${DT}} > ${OUT}/${DT}.xml; done;

 

您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题。

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~