awk 命令创建单个列的 sha2 并粘贴到新文件中

2024-01-08

我有一个包含多行的文件。使用该原始文件,我将创建另外一个文件,但在该新文件中,我只获取原始文件的几列。

我要做的是,我需要创建第一列的 sha2 并将其作为普通值以及 sha2 值粘贴到新文件中,而不是只选择几列并粘贴到新文件中。

希望我说清楚了。

这是我用来执行相同操作的 awk 命令。

 awk -F '|' -v  OFS='|' -v  var="10|" '(NR - 1) != 0  {$2=var$2; print $2,$3,$4,$5} (NR - 1) == 0   {print} ' $line > $subName$i$output

INPUT

2|0001001010000026316|531849|1150|101|01111991|00919323739251      |[email protected] /cdn-cgi/l/email-protection                                   |VIJAY PANDEY                            |PART OF GROUND FLOOR & BASEMENT         |SHOPPER STOP SV ROAD ANDHERI WEST       |LANDMARK-ERSTWHILE CRASSWORD BOOK STORE |MUMBAI                        |400058

预期输出需要第二列的 SHA2 值并附加为同一行的最后一列

10|0001001010000026316|531849|1150|101|2e16abd9f3e3e368210b11faa5bfebdb6e001034b58cc9ad1c689dfd1f7eeacd

尝试这个 :

awk -F"|" -v var="10" '
    NR==1;
    NR>1{
        "echo "$2"|sha256sum" | getline shaoutput; 
        split(shaoutput, sha, " "); 
        print var, $2, $3, $4, $5, sha[1]
    }' OFS="|" file

Output :

10|0001001010000026316|531849|1150|101|2e16abd9f3e3e368210b11faa5bfebdb6e001034b58cc9ad1c689dfd1f7eeacd

我更喜欢使用NR==1 and NR>1因为它更具可读性。

NR==1;可以,不需要添加{print}

For NR>1, I use sha256sum生成 sha 作为 awk 没有任何函数可以做到这一点(据我所知)。我将输出保存在shaoutput变量,使用清理输出split,然后打印需要的内容。

我不想将输出分隔符存储在var多变的。 在 print 中使用逗号将使 awk 使用OFS变量作为分隔符。

Edited

正如 Ed Morton 所建议的,一个改进的解决方案:

awk -v var="10" '
    BEGIN{
        FS=OFS="|"
    }
    NR==1;
    NR>1{
        shaoutput="";
        cmd="echo \047" $2 "\047 | sha256sum" ;
        if ( (cmd | getline line) > 0 ){
            shaoutput=line
            close(cmd)
        }
        split(shaoutput, sha, " ");
        print var, $2, $3, $4, $5, sha[1];
    }' file
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

awk 命令创建单个列的 sha2 并粘贴到新文件中 的相关文章

  • 在ubuntu中使用gcc生成特定频率的声音?

    如何在 C C 中生成特定频率的声音 我运行 Ubuntu 10 04 并使用 gcc 有一个void sound int frequency Windows 版 TurboC 上的功能 gcc 有等效的吗 下面是利用 PortAudio
  • 在 bash 脚本中设置变量[重复]

    这个问题在这里已经有答案了 test sh 包含 A 1 B 2 我将 test sh 设置为 chmod 777 我用两个参数启动脚本 test sh first last 然后我通过输入以下内容对其进行了测试 echo FirstVar
  • awk 数组输出行数和平均值

    感谢以下 karakfaawk输出结果为数组 我正在尝试添加 2到数组并输出它 2基本上是唯一条目出现的次数 正如我正在学习的awk数组我不知道我的尝试是否接近 Input chr1 955542 955763 AGRN exon 1 1
  • Linux:如何调试 SIGSEGV?如何追踪错误源?

    我的火狐浏览器从今天开始崩溃了 我没有更改系统或 Firefox 配置上的任何内容 I use strace ff o dumpfile txt firefox来追踪问题 这没什么大帮助 我在两个生成的进程转储中看到了段错误 但我怎样才能t
  • 相当于 Python 中的 set -o pipelinefail 吗?

    我有一些 Python 脚本 每个脚本都大量使用排序 uniq ing 计数 gzipping 和gunzipping 以及 awking 第一次运行我使用的代码subprocess call 是的 我知道安全风险 这就是为什么我说这是第一
  • 在Unix下,判断执行该程序的用户是否是root?

    我正在编写一个 rake 脚本 并希望检测 如果可能的话 使用 Ruby 而不是 bash 执行 rake 脚本的用户是否具有 root 权限 如果它不是 root 那么我想终止脚本 Use uid http www ruby doc or
  • Linux中根据USB VID:PID获取设备路径

    如果我插入一个设备 比如说 dev ttyUSB0我想知道号码0基于其 VID PID 通过lsusb 我怎样才能在 C Linux 中做到这一点 我有这个代码来查找一台打印机设备 如果有帮助的话 int printer open void
  • 如何通过命令行选项加载不同的 zshrc 文件?

    我以前用 bash 这样做过 bin bash rcfile home sindhu bin misc scripts shellrc bashrc 1 我怎样才能用 zsh 完成同样的事情 谢谢 您可以使用以下方法来近似该功能ZDOTDI
  • Tensorflow推荐的系统规格?

    我开始在我的 RHEL 6 5 机器上安装 Tensorflow 但事实证明 Tensorflow 需要 glibc gt 2 17 而 rhel 6 5 上默认的 glibc 是 2 12 我想知道是否有人可以帮助我了解张量流的最低 推荐
  • 如何将域名附加到我的服务器? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个小问题 查看了这里和其他论坛 但找不到解决方案 我的网站位于 my domain com 网站位于共享主机上 在我的域名注册中 我添加了当我为
  • 无法通过 SSH 连接到 Google 计算引擎

    我在一个新项目中设置了一个新的 Google Compute Engine 实例 我启动实例并使用命令gcloud init连接到我的项目 然后我使用命令sudo gcloud compute ssh instance 1 它引导我完成 S
  • Docker:如何创建堆栈、多个映像或一个基础映像?

    I am new using Docker and I got the doubt of using one image base for my stack or I have to define each image depending
  • 递归触摸修复计算机之间的同步[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 由于我的错误 我正在寻找一种从命令行触摸目录 和子目录 中的每个文件的方法 我的同步存储库在我的开发机器上有点不同步 我现在已经通过一些令人不快的巫术
  • brew install python,但随后:“python-2.7.6 已安装,只是未链接”

    免责声明 菜鸟 操作系统 10 8 5 当我在 bash 中安装 python 时 我得到了这个警告和错误 https i stack imgur com TBgBT png Warning Could not link python Un
  • linux + ksh + 向下舍入或向上舍入 - 浮点数

    在我的 ksh 脚本中 我只需要计算整数 有时我会得到浮点数 例如 3 49 或 4 8 等 所以我需要根据以下规则将浮点数转换为整数 示例 3 49 will be 3 2 9 will be 3 4 1 will be 4 23 51
  • sed 将带空格的行插入到特定行

    我在开头有一行空格 例如 Hello world 我想将此行插入到文件中的特定行 例如 将 hello world 插入下一个文件 hello world result hello hello world world 我正在使用这个 sed
  • SO_BINDTODEVICE Linux 套接字选项的问题

    我有一台带有两个网卡的电脑 一 eth0 用于 LAN 互联网 另一个用于与一个微控制器设备进行 UDP 通信 微控制器有一个 IP 192 168 7 2 和一个 MAC 地址 第二个电脑网络适配器 eth1 有 192 168 7 1
  • SO_REUSEPORT 可以在 Unix 域套接字上使用吗?

    Linux 内核 gt 3 9 允许通过设置在内核负载平衡的进程之间共享套接字SO REUSEPORT http lwn net Articles 542629 http lwn net Articles 542629 这如何用于类型的套接
  • 内核驱动程序从用户空间读取正常,但写回始终为 0

    因此 我正在努力完成内核驱动程序编程 目前我正在尝试在应用程序和内核驱动程序之间构建简单的数据传输 我使用简单的字符设备作为这两者之间的链接 并且我已成功将数据传输到驱动程序 但我无法将有意义的数据返回到用户空间 内核驱动程序如下所示 in
  • Jenkins 文本参数 - 特殊字符乱码(不需要的变量替换)

    我在 Jenkins Linux 下 有一份工作构建参数 https wiki jenkins ci org display JENKINS Parameterized Build类型为 文本 我使用参数来形成在构建过程中使用的文件的内容

随机推荐

  • 为什么匿名类中只能访问最终变量?

    a只能在这里最终决定 为什么 我怎样才能重新分配a in onClick 方法而不将其保留为私有成员 private void f Button b final int a b addClickHandler new ClickHandle
  • 为什么缺少 object.__getattr__ ?

    为什么object似乎没有 getattr 方法 它定义了两者 setattr and delattr 这三个都不需要吗 gt gt gt object setattr
  • CNContact 标识符中的“:ABPerson”字符串是什么?

    我的 iOS 应用程序会时不时地检查联系人并将新联系人导入到自己的数据库中 我检查了该联系人 它已经存在identifier字段 通常由 UUID 填充 CNContactStore store CNContactStore new sto
  • 关闭 Tkinter 后运行 wxPython

    我们有两个应用程序 一个使用 Tkinter 界面开发 另一个使用 wxPython 构建 两者都相当复杂 运行完 Tkinter 应用程序后 我希望在选择 Tkinter 应用程序中的按钮后运行 wxPython 应用程序 是否可以切换事
  • 在 PHP 中将段落分解为句子

    我一直在使用 explode mystring 将段落拆分成句子 然而 这不包括用不同标点符号结束的句子 例如 有没有办法使用数组而不是单个字符作为分隔符 或者还有另一种使用各种标点符号进行拆分的巧妙方法吗 I tried explode
  • 使用阻塞 IO 的多线程会损坏 Java 中的文件

    AIM 使用 Java 中的阻塞 IO 构建多线程应用程序来下载文件 请不要建议我使用非阻塞 IO 我被告知要使用这个 Issue 我的代码在下载服务器上托管的文件的客户端计算机上运行良好 但是 问题是我的服务器使用多个线程播种文件 在所有
  • ViewBag、ViewData、TempData、Session - 如何以及何时使用它们?

    ViewData 和 ViewBag 允许您访问视图中从控制器传递的任何数据 这两者之间的主要区别在于访问数据的方式 在 ViewBag 中 您使用字符串作为键来访问数据 ViewBag numbers 在 ViewData 中 您使用属性
  • 服务和广播接收器之间的区别

    我试图了解服务和广播接收器之间的区别是什么 在我看来 他们也可以做同样的事情 例如我有一个应用程序 App1 提供名为 ToastHelloWorld 的服务 该服务仅创建一个 Toast 和 stopSelf 我使用带有操作名称的意图过滤
  • 适用于 Android 的 card.io Mono (Xamarin Studio)

    有没有人成功创建了一个他们愿意分享的card io包装器 可以在Android应用程序的Mono中使用 或者有人可以阐明我做错了什么吗 创建一个新的Android Java 绑定库 Project 添加 jar 和 so 文件卡 io SD
  • 找出 Google Big Query 中每个字段占用的空间量

    我想优化我的 Big Query 和 google 存储表的空间 有没有办法轻松找出表中每个字段所获得的累积空间 这对我来说并不简单 因为我有一个复杂的层次结构 有许多重复的记录 您可以在 Web UI 中执行此操作 只需在下面的查询中键入
  • 增强位于 TypeScript 中声明的命名空间中的接口

    我想增强IHttpPromise
  • 在 Matlab 中使用 Java 类

    我已经为这个问题苦苦挣扎了两天 但我发现没有任何资源能够解决它 我试图从Matlab 版本7 13 0 564 R2011b 调用java类 在底部添加了链接 我已经使用 java 1 6 将 java 类编译成 class 文件 并且还使
  • 使用 bfg repo clean 从多个分支中删除多个文件

    我想使用 bfg repo clean 从多个分支中删除多个文件 任何人都可以建议如何做到这一点 我可以使用命令从单个分支中删除单个文件bfg delete files filename my repo git 请提供如何做到这一点的步骤
  • Flutter 未检测到 Android Studio

    我已经在我的 Ubuntu 机器上正确安装了 flutter 我还安装了 Android Studio 及其插件 Flutter 和 Dart 无论如何 当我跑步时 flutter doctor verbose 我得到这个输出 Flutte
  • Swift/iOS8:为什么页面控制指示器不显示?

    我正在实现一个简单的图库视图控制器 其中应用程序显示用户可以滚动浏览的一小部分全屏图像 我正在使用 UIPageViewController 我认为如果我实现了正确的数据源功能 应该自动显示页面控制指示器 但是我仍然看不到任何指标 在我的主
  • 如何在全景/光球模式下直接打开相机?

    我在 Android 4 2 Jelly Bean 中遇到了一个问题 如何从我的应用程序中打开相机 默认情况下处于全景 360 度光球模式 我已经搜索了很多grepcode http grepcode com file repository
  • 类型 Map 不适用

    我有以下内容JAVA由于接口而实现的方法 public String importDocument ImportSource source Map
  • Visual Studio 在加载时意外添加功能

    我在 Visual Studio 2013 中有一个 SharePoint 2010 解决方案 每次我关闭并重新打开 Visual Studio 时 都会向该解决方案添加一项新功能 其中包含一个列表 该列表已从它应该位于的另一个功能中删除
  • 委托如何使用通用且可扩展的类响应多个事件?

    我已经设计了一种技术来处理 rdlc 报告中的多个子报告 但当我试图使其通用且可重复时 我不得不采用该模型并针对每种情况稍微调整它 例如 如果我定义一个抽象接口 像这样 我只需根据需要将其从 winform 剪切并粘贴到 winform a
  • awk 命令创建单个列的 sha2 并粘贴到新文件中

    我有一个包含多行的文件 使用该原始文件 我将创建另外一个文件 但在该新文件中 我只获取原始文件的几列 我要做的是 我需要创建第一列的 sha2 并将其作为普通值以及 sha2 值粘贴到新文件中 而不是只选择几列并粘贴到新文件中 希望我说清楚