输出结果与真实结果不符
来源:9-8 利用sed查找文件内容(下)

慕斯卡0112930
2024-10-25
原始文件内容:
#测试1
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
#测试2
[mysqld]
port = 3306
socket = /var/run/mysqld/mysqld.sock
bind-address = 0.0.0.0
datadir = /var/lib/mysql
basedir = /usr
tmpdir = /tmp
log-error = /var/log/mysql/error.log
slow_query_log = ON
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
innodb_buffer_pool_size = 2G
max_connections = 200
query_cache_size = 128M
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
default-storage-engine = InnoDB
#测试3
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
#测试4
[mysql]
no-auto-rehash
#测试5
[isamchk]
key_buffer = 16M
#测试6
[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 2M
write_buffer = 2M
#测试7
[mysqlhotcopy]
interactive-timeout
根据以上配置文件,编写脚本,内容如下:
#/bin/bash
filename=/root/mzy/mysql.conf
function all_segment
{
echo “sed -n '/\[.*\]/p' $filename | sed -e 's/\[//g' -e 's/\]//g'
”
}
function count_items
{
items=sed -n '/\['$1'\]/,/\[.*\]/p' $filename | grep -v '\[.*\]'| grep -v '^#' | grep -v '^$'
index=0
for item in $items
do
index=`expr $index + 1`
done
echo $index
}
number=0
for count in all_segment
do
number=expr $number + 1
item_count=count_items $count
echo "$number: $count $item_count"
done
执行后输出结果:
1: client 6
2: mysqld 48
3: mysqldump 5
4: mysql 1
5: isamchk 3
6: myisamchk 12
7: mysqlhotcopy 1
结果内容最后一列数字与原始文件配置行不符,是哪里的问题。
1回答
-
酷田
2024-12-31
您好同学,您使用的测试系统是mac吗?00
相似问题