日常小命令集锦

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、字符串截取

参考:https://www.jb51.net/article/56563.htm

原文地址:https://www.cnblogs.com/t-road/p/11274858.html