命令行批量修改文件编码为 UTF-8 有一个源码项目,之前是在 Windows 上创建的。拿到 Mac 上用 IDE 打开,中文出现了乱码。我一看,文件编码都是 cp932(也就是 GBK)。 因此,需要把这些文件转码为 UTF-8。 命令如下: find . -type f -exec sh -c "iconv -f GBK -t UTF-8 {} > ~/temp" \; -exec mv ~/temp {} \; &nbs 运维笔记 桩白墨 2022-07-01 287 热度 0评论
bash 获取占用内存前 5 的进程 pid 命令如下: ps aux|tail -n +2|sort -k 4 -r|head -n 5|awk '{print $2, $4} 详解: ps aux,获取进程信息 tail -n +2,去掉第一行 sort -k 4 -r,根据第 4 列(内存占用)排序,并反转 head -n 5,前 5 行 awk '{print $2, $4}',取第2、第4列 运行截图: 运维笔记 桩白墨 2021-05-23 146 热度 0评论
bash 对数字排序 假如有这么一列数字(或数字开头的字符串),想要排序后输出。 # nums.txt: 1 2 3 55 23 5 7 90 25 18 44 121 309 88 直接使用 sort 并不能满足需求: # cat nums.txt|sort 1 121 18 2 23 25 3 309 44 5 55 7 88 90 应该使用 sort -n。 # cat nums.txt|sort -n 1 2 运维笔记 桩白墨 2021-04-17 170 热度 0评论
k8s 关闭所有被驱逐(Evicted)的 pod 命令如下: kubectl get po -A | grep Evicted | awk '{print $1, $2}' | while read -r ns pod; do kubectl delete po $pod -n $ns; done 运维笔记 桩白墨 2021-04-17 382 热度 0评论
bash 按行读取内容 两种写法: #!/bin/bash # 写法1 cat test.txt | while read line do echo "1:${line}" done # 写法2 while read line do echo "2:${line}" done < test.txt 运行截图: 运维笔记 桩白墨 2021-04-12 132 热度 0评论
bash 中的特殊变量 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同 $? 上个命令的退出状态,或函数的返回值。 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进 运维笔记 桩白墨 2021-04-10 148 热度 0评论
bash 跨脚本交互 问题背景 有两个写好的脚本,第1个脚本的某个输出,是第2个脚本的输入。由于第一个脚本输出的内容较多,且包含大量说明文字,不方便通过管道直接连接起来。 考虑封装一段客户端脚本,先调用脚本1,再调用脚本2,最后给出脚本2的输出。 这就涉及 bash 的跨脚本交互问题。 解决方案 其实很简单,使用 source 命令。 实例 现在有两个脚本,第二个脚本的输入,是第一个脚本的输出。 s1.sh: #!/b 运维笔记 桩白墨 2020-11-02 128 热度 0评论
bash 修改 json 文件字段 0 前提准备 需要有 jq 命令。如果没有需要先安装(如 ubuntu,使用 apt-get install jq)。 1 细节分解 1.1 修改单个 json 对象中的字段 jq '.attr_field=xxx' test.json 1.2 修改 json 对象数组中的字段(无过滤条件) jq 'map(.attr_field=xxx)' test.json 1.3 修改 json 对象数组中 运维笔记 桩白墨 2020-05-25 309 热度 0评论
bash 常用日期操作 记录一些工作中常见的 bash 日期操作。 获取当前日期 date 日期格式化 当前年月日:date +%Y%m%d 当前年-月-日 时:分:秒:date +%Y-%m-%d %H:%M:%S 当前 unix 时间戳:date +%s 获取昨天的日期 date --date="-1 day" +%Y-%m-%d 获取下个星期五的日期 date --date="next Friday" +%Y-%m Bash 桩白墨 2020-05-25 213 热度 0评论
bash 脚本实现提示确认:任意键继续、输入Y/N继续 0 场景描述 你写了一个脚本,其中作了一些假设,需要提示给用户,让用户确认。这时,就需要写一个“提示确认”功能。 有两种常见的交互方式:(1)按任意键继续;(2)输入特定字符后继续(一般是 Y/N)。 这里把两种方式的 demo 代码都贴出来。 1 任意键继续 #!/bin/bash echo " 开始执行操作. ... " get_char() { SAVEDSTTY=`stty -g` stt Bash 桩白墨 2020-03-04 348 热度 0评论