linux三剑客
grep
grep 命令用于查找文件里符合条件的字符串。
使用格式 grep [command] "待查文本" "查询地址(支持文件名通配符)"
其中command可以使用 -E 使待查文本支持正则表达式
# 例如:
> grep test *file
# 含义是在当前路径中所有文件名后缀为file的文件中查找‘test’
使用 -Eo 可以只输出正则表达式匹配到的子字符串
比如在docker compose中启动多台容器,但我现在要获取除了主控制容器外的全部容器ip,我就可以这么写:
# 为了回避前端vue页面渲染标记,请自行将 [[ 替换为 {{,反之同理
docker network inspect -f "[[json .Containers]]" [网段docker network id] | jq '.[] | select(.Name != "xcontroller") | .IPv4Address' | grep -Eo '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'
使用了jq工具(需要额外安装
apt install jq)用于解析json
sed
sed命令用于对文件流进行编辑。意思就是说可以编辑文件,但编辑完不会保存到文件。
如果使用 sed -i 可以直接保存编辑文件内容。
$ 表示末尾,如想在末尾添加文本,可以 sed -i '$a [文本]' [文件地址] ,如果在 a 的前面不标明行号,则代表每行后都追加
行号写 2,5 不是第2行和第5行的意思,是2-5行
sed '1i 添加的内容' file #这是在第一行前添加字符串
sed '$i 添加的内容' file #这是在最后一行行前添加字符串
sed '$a添加的内容' file #这是在最后一行行后添加字符串
awk
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。