这段代码实现了以下功能:
修改指定行内容:用户可以输入要修改的行号和新的内容,然后调用modify_line函数,使用sed命令将指定行的内容替换为新的内容。
修改匹配的第一个内容:用户可以输入要匹配的内容和新的内容,然后调用modify_first_match函数,使用sed命令将匹配到的第一个内容替换为新的内容。
修改匹配到的所有内容:用户可以输入要匹配的内容和新的内容,然后调用modify_all_matches函数,使用sed命令将匹配到的所有内容替换为新的内容。
删除某行:用户可以输入要删除的行号,然后调用delete_line函数,使用sed命令删除指定行。
指定首行增加内容:用户可以输入要添加的内容,然后调用add_to_first_line函数,使用sed命令在首行之前插入新的内容。
指定末行增加内容:用户可以输入要添加的内容,然后调用add_to_last_line函数,使用sed命令在末行之后插入新的内容。
用户输入操作选项:脚本会提示用户选择操作,用户可以输入相应的选项数字来执行对应的操作。这段代码通过使用sed命令和不同的函数来实现对配置文件的修改和删除操作,用户可以根据需要选择相应的操作,并输入必要的参数来完成相应的功能。
#!/bin/bash
# 配置文件路径
config_file="path/to/config/file.conf"
# 指定修改哪行内容
function modify_line() {
local line_number=$1
local new_content=$2
sed -i "${line_number}s/.*/${new_content}/" "$config_file"
}
# 指定修改匹配的第一个内容
function modify_first_match() {
local pattern=$1
local new_content=$2
sed -i "0,/${pattern}/s//${new_content}/" "$config_file"
}
# 指定修改匹配到的所有内容
function modify_all_matches() {
local pattern=$1
local new_content=$2
sed -i "s/${pattern}/${new_content}/g" "$config_file"
}
# 删除某行
function delete_line() {
local line_number=$1
sed -i "${line_number}d" "$config_file"
}
# 指定首行增加内容
function add_to_first_line() {
local new_content=$1
sed -i "1s/^/${new_content}\n/" "$config_file"
}
# 指定末行增加内容
function add_to_last_line() {
local new_content=$1
sed -i "\$a${new_content}" "$config_file"
}
# 用户输入操作选项
echo "请选择操作:"
echo "1. 修改指定行内容"
echo "2. 修改匹配的第一个内容"
echo "3. 修改匹配到的所有内容"
echo "4. 删除某行"
echo "5. 指定首行增加内容"
echo "6. 指定末行增加内容"
read -p "请输入选项数字:" option
case $option in
1)
read -p "请输入要修改的行号:" line_number
read -p "请输入新的内容:" new_content
modify_line "$line_number" "$new_content"
;;
2)
read -p "请输入要匹配的内容:" pattern
read -p "请输入新的内容:" new_content
modify_first_match "$pattern" "$new_content"
;;
3)
read -p "请输入要匹配的内容:" pattern
read -p "请输入新的内容:" new_content
modify_all_matches "$pattern" "$new_content"
;;
4)
read -p "请输入要删除的行号:" line_number
delete_line "$line_number"
;;
5)
read -p "请输入要添加的内容:" new_content
add_to_first_line "$new_content"
;;
6)
read -p "请输入要添加的内容:" new_content
add_to_last_line "$new_content"
;;
*)
echo "无效的选项"
;;
esac