shell 获取字符串前面的空格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 获取字符串前面的空格相关的知识,希望对你有一定的参考价值。
比如说
a=“ aaa xxx ccc ”
我现在要获取a前面的字符串空格长度应该怎么样呢?
也就是说
第一个字符类型或者是数字类型前面的空格
是
sed -n '/^\s*/' "$a" 显然是不行的 在sed中到底是如何使用正则表达式的呢?
echo "$a" | awk 'str=length($0); sub(/^[ ]*/,"",$0); print str-length($0);'
如:a=“ aaa xxx ccc ”,执行结果为:4
希望可以帮助到你!
这样算前面的空格长度:
b=$(echo "$a" | sed -r 's/( +)[^ ]+.*/\\1/')echo $#b 参考技术C $bash 1.shstring=how are you?string=ok?$cat 1.sh#!/usr/bin/bashwhile read stringdo echo "string=$string"done < 111 $cat 111how are you?ok?脚本名1.sh, 要读取的文件名111。
shell笔记:获取本机IP地址
#!/bin/bash #2.sh #编写shell脚本获取本机的网络地址。 #比如:本机的ip地址是:192.168.100.2/255.255.255.0,那么它的网络地址是192.168.100.1/255.255.255.0 #注意:Bcast与前面的Ip地址之间是两个空格,所以一定要把两个空格都删掉
#grep后面的搜索词加不加引号都可以,如果是一个比较长,有空格的,比如inet addr,就加引号,只有Mask可以不加
#之所以搜索inet addr是因为,只搜索inet的话,还有IPv6的地址
IP=`ifconfig eth0 | grep ‘inet addr‘ | sed ‘s/^.*addr://g‘ |sed ‘s/ Bcast:.*$//g‘` MASK=` ifconfig eth0 | grep Mask |sed ‘s/^.*Mask://g‘` echo "$IP/$MASK" exit
以上是关于shell 获取字符串前面的空格的主要内容,如果未能解决你的问题,请参考以下文章