如何使用 awk 将 mac addr 转换为 int?

2024-06-22

Input:

192.168.0.1 aa:bb:cc:00:11:22 192.168.0.1 aa:00:bb:11:cc:22
192.168.10.11 2a:bb:cc:20:11:22 192.168.10.11 aa:02:bb:21:cc:22

Output:

3232235521 187723558162722 3232235521 186920115227682
3232238091 46986071904546 3232238091 186928706210850

我知道如何在 python3 中将 mac 转换为 int (hex -> int) :mac = int(mac.replace(':', ''), 16)但我不能在 shell 中应用这个方法。也不知道IP到Int。

我想使用 awk,如下所示:

awk '{$1,$3=??, $2,$4=???}' tmpfile > newfile

使用 GNU awk for strtonum():

$ echo 'aa:bb:cc:00:11:22' | awk '{gsub(/:/,""); print strtonum("0x"$0)}'
187723558162722

$ echo '192.168.0.1' | awk '{split($0,o,/[.]/); print o[1]*256^3 + o[2]*256^2 + o[3]*256 + o[4]}'
3232235521
$ cat tst.awk
function ip2int(ip,  o) { split(ip,o,/[.]/); return o[1]*256^3 + o[2]*256^2 + o[3]*256 + o[4] }
function mac2int(mac)   { gsub(/:/,"",mac); return strtonum("0x"mac) }
{ print ip2int($1), mac2int($2), ip2int($3), mac2int($4) }
$ awk -f tst.awk file
3232235521 187723558162722 3232235521 186920115227682
3232238091 46986071904546 3232238091 186928706210850
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 awk 将 mac addr 转换为 int? 的相关文章

  • 使用 jquery 和 php 测试表单输入是否为 1 或 2 位整数

    我有一个表单 其中有五个字段全部设置为 maxlength 2 基本上 我希望唯一可以输入的值是一位或两位整数 因为在将值存储在数据库中之前对这些字段执行计算 是否有任何 jquery 不允许用户输入不是整数的值 另外 用 jquery 和
  • Bash 循环遍历具有行和列的变量

    经过几个小时的搜索测试不同的解决方案后 我尚未找到可行的解决方案 Bash 和 Shell 脚本不是我的强项 我有一个变量 其中有行 换行 和列 制表符分隔 我想要做的是循环遍历行并获取 Column X 然后将该项目放入变量中 以便我可以
  • 如何使用 awk 将 mac addr 转换为 int?

    Input 192 168 0 1 aa bb cc 00 11 22 192 168 0 1 aa 00 bb 11 cc 22 192 168 10 11 2a bb cc 20 11 22 192 168 10 11 aa 02 bb
  • Matlab:从一定范围内不重复的随机整数

    我想获得一个包含在范围内且不重复的随机整数的数组 我使用了 randperm 15 3 输出是 8 10 12 这个函数不使用范围 我只想从 10 中随机取值 例如 如果您有统计工具箱 则可以使用randsample https www m
  • 如何在 grep 中每个文件匹配一次?

    是否有任何 grep 选项可以让我控制匹配总数 但在每个文件的第一个匹配处停止 Example 如果我这样做grep ri include coffee re 我明白了 app coffee express require express
  • 使用 awk 根据数据文件中的日期和时间插入数据列

    以下文件有多列 其中包含日期 时间和不完整的数据集 如使用简单文件所示 Matrix txt 13 09 2016 23 44 10 4 0 13 09 2016 23 44 20 10 0 13 09 2016 23 44 30 13 0
  • 比较两个文件的各自字段并以特定格式输出所需的内容

    我正在比较两个文件 food1 txt 文件并比较 food2 txt 文件 如下所示 cat food1 txt pizza 1ea chicken 5ea tooboo 4ea orange 2ea cat food2 txt pizz
  • 如何使用 HP-UX shell 脚本将简单的文本文件作为附件发送?

    我需要在 HP UX 中使用 shell 脚本发送一封带有文本文件作为附件的电子邮件 我没有安装mutt 我正在使用以下命令 但它在电子邮件正文中发送文件内容 我希望将其作为附件 mailx s Report email protected
  • 如何在 Mac OS X 中通过给出进程名称来获取进程的 PID?

    我正在编写一个脚本来监视任何给定进程的 CPU 和 MEM 为此 我需要将要监视的进程的名称作为命令行参数发送 例如 monitorscript
  • Powershell 将字符串转换为 System.Net.IPAddress

    我是 powershell 新手 我正在尝试自动创建 DHCP 预留 到目前为止 我可以像这样获取 IP 地址 IP GEt VM ComputerName HVCOMPUTERNAME VMName HVNAME Get VMNetwor
  • 如何在 Win 10 UWP 项目上查找本地 IP 地址

    我目前正在尝试将管理控制台应用程序移植到 Windows 10 UWP 应用程序 我在通过以下控制台代码使用 System Net Dns 时遇到问题 如何获取设备IP 这是我尝试移植的控制台应用程序代码 public static str
  • 在 Python 中将 int 转换为字符串

    我希望能够生成多个名为 fileX txt 的文本文件 其中 X 是某个整数 for i in range key filename ME i txt Error here Can t concat a string and int fil
  • sed:用匹配的模式替换第 n 个单词?

    我有一个具有以下特征的文本文件 每行至少有三个由空格分隔的 单词 单词 可以是任何字符或字符串 我在一些行中附加了一些注释 并提出了对原始单词进行更改的初步建议 现在想使用 sed 为我进行这些更改 因此 为了提供更清晰的图片 我的文件如下
  • 将匹配的值传递给函数,并替换为返回值

    我如何让 Bash 匹配正则表达式 而不是用常量字符串替换值 而是将匹配的值传递给函数 然后从函数的返回值中获取要替换的值 像下面的伪代码一样 它替换了每一个匹配项 a d 具有相同的字符 但大写 function uppercase ec
  • 如何在shell脚本中运行R代码?

    我有一个 R 文件 myfile R 我想使用 shell 脚本来运行它 我怎样才能做到这一点 我试过这个 bin bash Rscript myfile R 但它给了我这个错误 Rscript 找不到命令 我也尝试过这个 bin bash
  • WinSock.h 和 WinSock2.h 使用哪个?

    有谁知道 WinSock h 和 WinSock2 h 之间的区别 我知道它们不使用相同的库 lib 但我不知道 WinSock2 是否仅添加了新功能 或者是否还改进了 WinSock 1 功能 我正在使用 IP TCP 套接字 并希望使用
  • 转换MAC地址格式

    我刚刚编写了一个小脚本 从交换机中提取数百个 MAC 地址进行比较 但它们的格式为 0025 9073 3014 而不是标准的 00 25 90 73 30 14 我对如何转换它感到困惑 我能想到的最好的办法就是在 处将它们分解成碎片 然后
  • 如何排除文件/文件夹以删除[重复]

    这个问题在这里已经有答案了 如何删除文件夹中的所有内容并排除特定文件夹和文件 以 tar 为例 tar exclude folder 编辑 我可以删除文件和文件夹 注意 运行以下命令时请小心 find type f grep v NameT
  • 如何使用linux命令sed来处理Little-endian UTF-16文件

    我正在开发一个关于 Windows rdp 的应用程序 现在 当我尝试使用 sed 命令直接替换 rdp 文件中的 IP 地址字符串时遇到问题 但执行该命令后 原始rdp文件出现乱码 sed i s address s address s
  • 通过 ssh 运行具有嵌套引号的 shell 命令

    我有以下 shell 命令 ssh user host df grep dev awk BEGIN print DISK USAGE STATUS split 5 a var GREEN print 1 5 var column t 我需要

随机推荐

  • 了解 Drools guvnor 的工作

    任何人都可以让我知道 drool guvnor 是如何工作的 我查阅了 guvnor 文档 但无法理解规则如何处理的核心逻辑以及我们如何使用与 java 代码一致的 drools guvnor 基本上我想知道java代码如何与drools
  • 如何在运行时检查 python 模块是否有效而不导入它?

    我有一个包含子包的包 仅需要在运行时导入其中一个子包 但我需要测试它们是否有效 这是我的文件夹结构 game init py game1 init py constants py game2 init py constants py 目前
  • MVVM 中模型的职责是什么?

    我一直对 模型 应该或不应该包含什么感到有点困惑 教程和示例经常相互矛盾 到目前为止 我一直在谨慎行事 我的模型只暴露 UI 内容 例如用于绑定到视图的属性以及验证逻辑 但是模型中包含其他业务逻辑是否可以接受 假设我想通过网络服务控制机械泵
  • RewriteCond 比较 Apache htaccess 中的两个变量

    我想要一个rewritecond这得到true如果有两个变量HTTP ORIGIN and HTTP HOST是平等的 我试过 RewriteCond HTTP Origin http HTTP HOST 但尽管 Netbeans 语法颜色
  • 是否可以在backbone.js视图中使用全局变量?

    是否可以在backbone js视图中使用全局变量 exmpl var TodoView Backbone View extend counter null is this possible initialize function this
  • Swift 中动态获取 AnyObject 的类型

    我已将参数传递给 AnyObject 类型的函数 因为任何内容都可以传递给它 有没有办法动态获取传递的对象类型 目前尚不清楚问题中 类型 的含义 对于 Swift 中任何类型的任何值 您都可以像这样获取其动态运行时类型 theVariabl
  • 使用什么语言编写 Windows shell 扩展

    我知道如何用 python 编写 shell 扩展 缺点是 它不适用于 64 位 Windows 我不确定每次 发生 事情时创建一个 python 进程会如何降低性能 我知道如何使用 Net C 编写 shell 扩展缺点是 被MS气馁 h
  • 在 R 2.15.2 上安装 Ime4 和 ggplot2 时出现问题

    我在安装 lme4 和 ggplot 包时遇到困难 我尝试通过选择 CRAN 镜像 已经尝试了几个 然后选择软件包来安装它们 并且还尝试了以下操作 install packages lme4 repos http r forge r pro
  • Maya Python API 2.0没有MItDag,那么如何遍历DAG图呢?

    此问题特定于 Autodesk Maya 使用 Maya 2014 SP 2 现在下载 SP 3 使用 Maya Python API 版本 1 时 可以这样遍历 DAG 图 import maya OpenMaya as OM dagIt
  • android 相机:无法将结果 ResultInfo{who=null, request=0, result=-1, data=null} 传递给 Activity

    我真的很沮丧地解决我的问题 我有一个使用相机的应用程序 当相机捕获照片时 它将显示在活动中 当我不使用时cameraIntent putExtra MediaStore EXTRA OUTPUT mPhotoUri 照片将显示在活动中 但名
  • SqlDeveloper:清除网络别名列表

    我使用 sql developer 连接到具有多个不同用户的多个不同的 Oracle 数据库 连接信息保存在tnsnames ora文件 以便当数据库更改服务器时 我不必手动更新与它的所有连接 我最近更新了 tnsnames 文件 现在网络
  • HTML 页面的 jQuery load() 中未加载图像

    我正在使用以下代码在 div 中加载 html 页面 htmlViewer load conversion test to convert 3264 getPageName pageCount htm function response s
  • 在 Activity 之间传递片段

    我想做一个可以支持纵向和横向的应用程序 该布局有两个窗格 左侧是选项 右侧显示结果 选择某个选项后 右侧窗格将显示该选项 但对于肖像来说 没有足够的空间 因此需要单独的活动 每个选项都会生成不同类型的片段 因此当活动之间的所有更改都是在其中
  • 在 Android 中设置微调器 onClickListener()

    我试图让 onClickListener 在 Spinner 上触发 但出现以下错误 Java lang RuntimeException 是 不要为 AdapterView 调用 setOnClickListener 您可能需要 setO
  • 如何在ipad中使用core-plot绘制3D饼图? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须使用 core plot AP
  • 何时使用依赖注入

    最近几天我有一种感觉 依赖注入真的应该被称为 我无法下定决心 模式 我知道这可能听起来很愚蠢 但实际上这是我应该使用依赖注入 DI 背后的原因 人们经常说我应该使用 DI 来实现更高级别的松耦合 我明白了 但实际上 一旦我选择了 MS SQ
  • Smalltalk 变量:为什么要声明它们?

    基本上我可以通过给变量分配一些东西来使用变量 例如 x something 效果很好 但是在类中 如果我定义一个新方法 但没有声明该变量 我会得到一个 对未声明变量 x 的赋值 所以我必须使用 x x something 为什么是这样 正如
  • 禁止将文本粘贴到 HTML 表单中

    有没有办法使用 JavaScript 禁用将文本粘贴到 HTML 表单上的文本字段的功能 例如 我有一个简单的注册表单 用户需要输入电子邮件两次 第二封电子邮件条目是为了验证第一封电子邮件条目中没有拼写错误 但是 如果用户复制 粘贴他们的电
  • 在循环 C++ 中重用线程

    我需要在 C 程序中并行化某些任务 并且对并行编程完全陌生 到目前为止 我通过互联网搜索取得了一些进展 但现在有点卡住了 我想在循环中重用一些线程 但显然不知道如何做我正在尝试的事情 我正在从计算机上的两个ADC卡获取数据 并行获取 然后我
  • 如何使用 awk 将 mac addr 转换为 int?

    Input 192 168 0 1 aa bb cc 00 11 22 192 168 0 1 aa 00 bb 11 cc 22 192 168 10 11 2a bb cc 20 11 22 192 168 10 11 aa 02 bb