欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

udo security delete-generic-password -l $ssid,模糊删除 无线网 wifi $ssid 如何实现 merlin chatgpt 有大用

要实现模糊搜索并删除与SSID相关的通用密码,你需要编写一个脚本来查找所有匹配的条目并删除它们。以下是一个可能的实现:

bash

#!/bin/bash

# 获取SSID作为输入参数
ssid=$1

# 使用安全工具查找与SSID匹配的通用密码条目
entries=$(security find-generic-password -l "$ssid" -g 2>&1 | grep "labl" | awk -F\" '{print $2}')

# 检查是否找到任何匹配项
if [ -z "$entries" ]; then
    echo "没有找到与SSID相关的通用密码。"
    exit 1
fi

# 删除所有与SSID匹配的通用密码条目
for entry in $entries; do
    echo "正在删除通用密码条目: $entry"
    sudo security delete-generic-password -l "$entry"
done

echo "删除操作完成。"
解释


保存上述脚本为delete_passwords.sh,然后通过终端执行:

bash

chmod +x delete_passwords.sh  # 赋予执行权限
./delete_passwords.sh "你要模糊查询的SSID"
解释


该脚本首先查找与给定SSID相关的所有通用密码条目,然后逐个删除它们。如果没有找到匹配的条目,脚本会提示并退出。这样你就实现了模糊查询和删除功能。




对于删除与模糊查询关键字匹配的项目,你可以使用更合适的命令。

在你的例子中:

bash

sudo security delete-generic-password -l $ssid
解释

这里的 $ssid 是你想要模糊查询的关键字。但是这个命令可能不会按你预期的方式工作,因为 -l 是针对精确匹配的标签。

模糊查询并删除的正确方法如下:

首先,找到匹配关键字的所有项目:

bash

security find-generic-password -g 2>&1 | grep -i $ssid
解释

然后,你可以提取并删除这些项目。以下脚本会帮助你找到所有包含 $ssid 的项目并删除它们:

bash

matched_items=$(security find-generic-password -g 2>&1 | grep -i $ssid | awk -F\" '{print $2}')
for item in $matched_items; do
    sudo security delete-generic-password -l "$item"
done
解释

这段脚本的步骤如下:

  1. 使用 security find-generic-password -g 命令查找所有通用密码项。

  2. 用 grep -i $ssid 过滤包含指定关键字 $ssid 的项目。

  3. 用 awk -F\" '{print $2}' 提取匹配项目的名称。

  4. 使用循环 for item in $matched_items 对每个匹配项目执行 sudo security delete-generic-password -l "$item" 删除操作。

请根据实际情况修改其中的 $ssid 变量。运行这些命令前小心,因为它们会删除与你指定关键字匹配的所有密码。


普通分类: