图片来源:https://www.pixiv.net/artworks/89845503 有如下三个表格,他们各自对应一个CSV格式文件 Fruit Qty Price Apple 13 1.1 Banana 24 2.3 Pear 7 1.5 Fruit Qty Price Apple 27 5.5 Pear 40 3.04 Watermelon 5 0.99 Fruit Qty Price Banana 12 0.55 Pear 15 2.98 Peach 8 6 使用awk合并上述3个表格,对于相同水果合并数量并求均价 用法: 输出: 合并后输出为CSV格式的单行版本 输出:
Monthly Archives: November 2022
图片来源:https://www.pixiv.net/artworks/42320059 大多日志都会在行首添加时间信息,通过在awk脚本内调用date命令把时间信息转换为时间戳进行比较实现日志截取 以linux启动日志为例,以空格为分隔符的话,前三个字段为时间信息 下面的脚本截取 2022-11-11 12:51:44 ~ 2022-11-11 12:52:44 这一分钟内的日志(执行:./logfilter.awk boot.log) 或者略微修改一下,通过命令行传入起止时间 用法
图片来源:https://www.pixiv.net/artworks/81733152 使用sed处理类似下面这样的有独立的首尾特征的多行结构数据,实现增删改查 增 给梨添加一个产地字段(from = guangxi) 删 删除苹果的产地 改 修改香蕉的价格 查 打印所有打折的水果(on_sale = true) 单行版本 多行版本 参考:
图片来源:https://www.pixiv.net/artworks/81818784 PCAPdroid下载安装 PCAPdroid是一个Android端抓包软件,可以不使用root权限,通过VPN的方式捕获网络流量并保存为pcap文件。但以这种方式保存的报文没有Enternet数据,可以通过tcprewrite修改报文,添加Enternet报文头 安装包下载链接: 抓包 Linux上使用tcprewrite添加Enternet报文头 tcprewrite工具包含在tcpreplay包里,安装tcpreplay即可 安装 Arch Linux Ubuntu 重写报文数据 将手机上抓包保存的pcap文件传到PC上,使用下面的命令添加Enternet报文头 另外我在Arch Linux上使用安装的“tcpreplay-4.4.2”存在重写失败的情况,回退到“tcpreplay-4.3.1”后则没有问题
图片来源:https://www.pixiv.net/artworks/85222177 极简CMakeLists.txt 设置编译使用的C++标准 设置项目名称和版本 编译时自动生成包含版本号宏定义的头文件 添加INCLUDE路径 编译为静态库 链接库 让使用MathFunctions库的地方自动添加使用MathFunctions库必要的include路径 参考:
图片来源:https://www.pixiv.net/en/artworks/101040610 基本语法 getopts用来在shell脚本中解析命令行传入的选项 optstring optstring指定要解析哪些选项,哪些选项需要额外参数(如-f选项需要一个用户指定的文件名),需要额外参数的选项后面添加冒号 比如下面这条命令,使用tar创建一个tar包“test.tar” 其中, c选项表示“创建”,不需要参数;f选项指定生成的文件名,需要参数。所以解析这两个选项的optstring应该写成 特殊变量 解析错误 示例 下面编写一个简单的备份文件脚本,演示getopts的用法 脚本的基本功能和用法: 参考: