awk生成数组1
[root@localhost ~]# list=($(echo "1,2,3"|awk '{split($0,arr,",");for(i in arr)print arr[i]}'))
[root@localhost ~]# echo ${list[*]}
1 2 3
awk生成数组2
[root@localhost ~]# eval $(echo "1,2,3"|awk '{split($0,arr,",");for(i in arr)print "arr["i"]="arr[i]}')
[root@localhost ~]# echo ${arr[*]}
1 2 3
普通for循环
for ((i=1; i<=3; i++))
do
echo "${i} is ok"
done
#awk使用定义的变量: store_sort
awk 'NR=="'$store_sort'" {print $1}'
#输出最后一行
awk END'{print $1}'
#awk指定行
awk 'NR==3{print $4}'
cat生成文件
cat >> /ta/store.sh<<EOF
#!/bin/bash
echo yes
EOF
#定义集合
containerList=(web1 web2 web3 web4 web5 web6)
#加强for
for item in ${containerList[*]}
do
echo ${item}
done
#switch语法
case ${mode} in
1)
echo 1
;;
2)
echo 2
;;
*)
echo "error的选项"
;;
esac
通过索引和偏移量返回字符串
echo ""|awk '{print substr($1,1,2)}'
删除文件的特定行
sed -i '1d' sed-demo.txt
查看文件指定行
sed -n '50 p' store.conf
#对数字进行计算
1. $((1+5))
2. $[1+5]
#用.对字符串分隔,拿到数组array
echo ""|awk '{split($1,array,".");print array[3];}'
#插入指定行
sed -i "5 i hello" /ta/store.conf
#定义数组
array=('A' 'B' 'C' 'D')
#获取数组的元素
${array_name[index]}
#对数值进行判断
[ `echo "1.1 >= 1"|bc` == 1 ] && echo true|| echo false
#判断文件是否存在
if [ -f "/ta/store/app.conf" ];
then
echo "true"
fi
echo "false"
判断简洁写法
[ -f "/ta/store/app.conf" ] && echo "true" || echo "false"
#字符串替换
echo '"| awk '{sub("1", "" , $1);print $1;}'
#对字符串的进行替换转义字符
echo 2020.10.1|awk '{sub("\\."," ",$1);print $1;}'
#对字符串进行分隔
f:指定分隔符
echo 1,2,3,4,5 | awk -F , '{print $2}'
#文件文本替换
sed -i "4s/22/$sshport/g" test.conf
#删除替换一行
sed -i "7s/.*/handsome:$datadir/g" app.conf
效果 handsome:ta
#删除文件第7行在添加一行加转义字符
sed -i "7s#.*#\"server\": \"$public_ip:$public_port\";"#g app.conf
效果 "servrt":"127.0.0.1:80";