From 5ea4f9195df98bf91144369d77244618e75c546a Mon Sep 17 00:00:00 2001 From: Ryan Yin Date: Tue, 14 May 2024 17:12:14 +0800 Subject: [PATCH] docs: nushell --- ...75\344\273\244\351\233\206\351\224\246.md" | 39 ++----------------- 1 file changed, 3 insertions(+), 36 deletions(-) diff --git "a/linux/nushell \345\270\270\347\224\250\345\221\275\344\273\244\351\233\206\351\224\246.md" "b/linux/nushell \345\270\270\347\224\250\345\221\275\344\273\244\351\233\206\351\224\246.md" index 54bd3b28..10a93491 100644 --- "a/linux/nushell \345\270\270\347\224\250\345\221\275\344\273\244\351\233\206\351\224\246.md" +++ "b/linux/nushell \345\270\270\347\224\250\345\221\275\344\273\244\351\233\206\351\224\246.md" @@ -1,41 +1,8 @@ # nushell 常用命令集锦 -## 将图片批量转换为 webp 格式 +将图片批量转换为 webp 格式,同时缩小到 2K 宽度,质量 85: ```nu -# 批量将所有 png/jpeg 文件转换成 webp 文件以缩小体积,并全文替换 markdown 中的图片名称 - -# let old_format = ".png" -let old_format = ".jpeg" - -# 递归找出所有大于 10kib 的图片 -let old_paths = (ls $"**/*($old_format)" | where size > 10kb | each {|it| $it.name}) -$old_paths | to md | save --raw ./old_paths.txt - -def to_webp [old_path: string, old_format: string] { - # 将后缀改为 .webp 得到新图片的 path - let webp_path = ($old_path | split row $old_format | append ".webp" | str collect) - # 使用 ffmpeg 进行格式转换 - ffmpeg -y -i $old_path -c:v libwebp $webp_path - # 删除旧图片 - rm $old_path -} - -def replace_with_webp [old_path: string, old_format: string] { - # 将后缀改为 .webp 得到新图片的 path - let webp_path = ($old_path | split row $old_format | append ".webp" | str collect) - # 图片的旧名称与新名称 - let old_name = ($old_path | path basename) - let webp_name = ($webp_path | path basename) - # 批量将 .md 文件中的所有图片名称,改为对应的 webp 图片名称 - # 注:MacOS 需要首先安装好 gsed,Linux 请将下面的 gsed 替换为 sed - let cmd = $"gsed -ri 's/($old_name)/($webp_name)/g' `find . -name "*.md"`" - echo $cmd - bash -c $cmd -} - -# 1. 执行图片格式转换与压缩,同时删除原图片 -$old_paths | each { |it| to_webp $it $old_format } -# 2. 执行 .md 文档中的图片名称替换 -$old_paths | each { |it| replace_with_webp $it $old_format } +ls *.jpg | each {|it| ffmpeg -y -i $it.name -vf scale=2000:-1 -codec libwebp -lo +ssless 0 -quality 85 $"($it.name).webp"} ```