echo ${#Massage}
echo $Massage | awk '{print length($0)}'
[lcf@huangbei ~]$ Massage=" Usage: $0 \${RELEASE_NOTE_FULL_PATH} "
[lcf@huangbei ~]$ echo ${#Massage}
39
[lcf@huangbei ~]$ echo $Massage | awk '{print length($0)}'
37
[lcf@huangbei ~]$ Massage="Usage: $0 \${RELEASE_NOTE_FULL_PATH}"
[lcf@huangbei ~]$ echo ${#Massage}
37
shell 里做 判断时[ 左边一直报错,语法无问题,有redhat 里执行没有问题,脚本放到ubuntu 时报错
[: test: unexpected operator
解决:
ubuntu 的shell 默认指向dash , 需要改回bash
sudo dpkg-reconfigure dash
选择 no
rel7.1 默认安装的python 没有连带安装python-pip,需要另装。
#官方源中无python-pip
yum search pip 发现无python-pip
#搜索后发现需要安装第三方软件库
yum -y install epel-release
vi /etc/yum.repos.d/epel.repo
[epel]
baseurl //打开注释
#metalink //注释
yum clean all
yum makecache
yum install python-pip
sed -i "/key/c\modify key line " file
#把file 中带有 key 的所有行替换为modify key line
eg.
change_list=`cat temp3.txt `
for i in ${change_list}
do
if [[ $exp ]]; then
sed -i "/${i}/c\\${i} <-- change" temp2.txt
fi
done
在exit 0 前面插入一行:i
sed -i '/^exit 0/i \/sbin\/start ttyS0' /etc/rc.local
在exit 0 后面插入一行:a
sed -i '/^exit 0/a \/sbin\/start ttyS0' /etc/rc.local
处理同一个打印结果 中,取多行标题及关键字匹配行
accurev show wspaces | head -n 5 ; accurev show wspaces | grep EPDG_R16
以上accurev show wspaces 执行了两次,在两次结果里各取结果 再拼接,效率较低
sed -n '1,5p'
sed -n '/xxxxx/p'
sed -n '1,5p;/^EPDG_R16_xxxx/p'
使用sed 将两个条件用分号串成多个条件,对结果进行“或关系”匹配
accurev show wspaces | sed -n '1,5p;/^EPDG_R16_xxxx/p'
Stream #
| Target X-Action
| | X-Action
paste text1.txt text2.txt
B="case_"${A}".test"
cat temp.txt | while read line
do
echo MME_case${line}.test >>temp_MME.txt
done
从左边开始匹配:# ## 从右边开始匹配:% %% 最大化匹配:叠号 ## %% (从左/右匹配,当匹配到多个关键符时,匹配到最后一个停下) 最小化匹配:单号 # % (从左/右匹配,当匹配到多个关键符时,匹配到第一个停下) 从左匹配,* 号放在匹配符左边: */ *. *- 从右匹配,* 号放在匹配符右边: /* .* var=/vob/lcf/test.txt 常用取文件名:剩下的是从左起最后一个/的右边部分 ${var##*/} 常用取后缀:剩下的是从左起最后一个.的右边部分 ${var##*.} 常用取路径:剩下的是从右起第一个.的左边部分 ${var%/*}
.......
.........
处理 行首空格 行尾空格 空行
去行首的空格
sed 's/^[ \t]*//g'
去掉空行
grep -v "^$"
.......