日常小命令集锦
1、过滤掉配置文件中带#的行、空行、以#开头的行
# cat file.conf | grep -v "^#" | grep -v "^$" | grep -v "#"
2、使用sed过滤出文件中指定范围内的字符串
假如文件的格式是这样的:
<A>
<B>12345</B>
<C>56789</C>
</A>
我想过滤出12345,使用下面的命令。
# sed -n '/<A>/,/<\/A>/{/<B>.*<\/B>/p}' filename
3、shell获取字符串的长度
参考:https://www.jb51.net/article/121290.htm
# str="abcde"
方式1:
# echo ${#str}
方式2:
# echo ${str} | awk '{print length($0)}'
4、获取指定行以及后面所有行
sed -n '/mysqld20002/,$p' /etc/my_multi.cnf
[mysqld20002]
a
b
c
然后删除这些行:
sed -i '/mysqld20002/,$d' /usr/local/my_multi.cnf
sed -n '/-------------/+1,$ p' /etc/my_multi.cnf
假如文件内容为:
--------------
a
b
c
上面的命令会打印-------------下的所有行
5、获取某个URL的返回码
curl -I -m 10 -o /dev/null -s -w %{http_code} http://www.example.com/index.html
6、关于shell的几个小知识点
(1)用户交互
read -p "请输入你的名字: " name
用户输入的名字会保存到变量name中。
(2)取消backspace键的^H
当我们输错时,会需要修改,但是使用backspace键时,出现的却是^H符号,所以我们要设置变量:
stty erase ^h
在shell脚本前加上这个,就可以去到^H。
7、字符串截取