前言
晚上好🦉
工作中有一个需求:需要使用bash脚本将文本中的配置信息进行修改。
发现使用临时文件的办法,可以很大程度上简化代码的复杂度。
下面就简单演示一下。
演示
需求:我有一个文件:testData.txt:
name:jiang
age:12
name:su
age:12
这是两个人的信息,我需要在每一个人的信息后都加上hobby:rap的信息。
当然,这个需求比较简单,本次需求仅仅是为了温习使用临时文件时候的一些操作,这样在一些更复杂的业务场景中就可以用到了。
下面是test1.sh中的实现代码:
#!/bin/bash
# 指定要读取和修改的文件
FILE="testData.txt"
# 创建临时文件
TMP_FILE=$(mktemp)
# 读取文件内容并输入到临时文件
while IFS= read -r line
do
# 在每一个name字段下面新增新的字段
if [[ $line =~ .*name.* ]]; then
echo "$line" >> "$TMP_FILE"
echo "hobby:rap" >> "$TMP_FILE"
else
echo "$line" >> "$TMP_FILE"
fi
done < "$FILE"
# 使用临时文件代替源文件
cp "$TMP_FILE" "$FILE"
# 删除临时文件
rm "$TMP_FILE"
echo "[DEBUG_JJQ] 程序运行完毕"
运行脚本:
bash test1.sh
执行后的testData.txt如下所示:
name:jiang
hobby:rap
age:12
name:su
hobby:rap
age:12
最后
需要注意的是,临时文件的默认地址在/tmp/
下次见咯😊