在文件字段块 修改指定内容 grep 匹配字符向下选择多行

2021-05-31 10:46:04 浏览数 (1)

代码语言:javascript复制
setfile="1.log"                              # 定义一个文件变量,为指定文件
setn=(
`cat -n $setfile | grep -A 2 -w "[AAADB]" | grep "BACKUPFLAG" | awk -F" " '{print $1}'`
)
                                                    # cat -n 显示行号
                                                    # -w 精确匹配单词
                                                    # 定义一个数组变量,为查询结果的所有信息,为元素
                                                    # grep -A 配置,匹配命令grep到字符的行,指定范围行向下两行
                                                    # awk -F 指定间隔符号为空格,打印第一列
echo "需要修改的行:" ${setn[*]}   # 打印数组变量的所有元素
for i in ${setn[*]}                         # 定义for循环中的变量i 为数组中所有元素,直到循环完结束
do
sed -i "$i s/BACKUPFLAG.*/BACKUPFLAG=0/g" $setfile
                                                    # sed -i "$NR  s///g"  其中变量是制定行修改
done
cat $setfile

0 人点赞