聊聊一些在写shell脚本时忍不住百度的东西

截取字符串关键信息:

某个version.log文件里有某一行文本version:3379   

取出3379:1、version_str=`cat version.log | grep version`   2、version_number=${version_str#*:}

如果要取:左边的字符串则version=${version_str%%:*}

 

以逗号,空格等有规律分隔开的字符串处理:

某个open.log文件里有一行文本open_days:0,1,3,5,6

取到0,1,3,5,6并且放入数组:1、open_days_str=`cat open.log | grep open_days`   2、open_days=${open_days_str#*:}

3、open_arr=(${open_days//,/ })

for val in ${open_arr[*]}或 days_1=${open_arr[0]} days_2=${open_arr[1]}...

 

替换文件中的字符串:

sed -i "s/被替换串/新串/g" 文件名   不加g只替换首个匹配串

如果要在某个串前面或后面插入串

sed -i "s/\(目标串\)/插入串\1/" 在前面插入

sed -i "s/\(目标串\)/\1插入串/" 在后面插入

 

awk结合ps:

pid=`ps -ef | grep xxx | grep -v grep | awk '{print $2}'` 拿到进程id

var=`ps -ef | grep xxx | grep -v grep |awk '{print NR}' | tail -n1` 取到带xxx名字的进程数量

if [ $var -gt 0 ] 简单的判断进程存不存在

 

字符串比较:

if [[ ! -n "$open_today" ]]  if [[  -n "$open_today" ]]  open_today是否为空串

if [[ "$open_today" != "$today" ]]  if [[ "$open_today" = "$today" ]] open_today是否与today相等

if [[ "$time_now" > "$defend_time" ]] 字符串比较大小 ascii码规则

 

字符串拼接:

现有变量

name=小明

age=21

拼成字符串["小明","21"]:   result_str= "[\"$name\",\"$age\"]"

另外,直接跟指令的结果拼接:result=`date "+%Y%m%d"`":open"  结果是20190806:open

 

会用到的:

结果中不带字段名的查询语句`mysql -uxxx -pxxx -Ne  'select ...'`

 echo -n > xxx.txt   清空文件

 echo -e 可以识别转义符

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值