awk 的 printf 插入多个变量的正确语法是什么?

2024-05-23

我复制了一些使用 printf 输出字符串在文件中出现的频率的代码。

awk ' BEGIN {  print "The number of times a appears in the file:" ; }
/a/ {  a_counter+=1  ;  }
END {  printf "%s\n",  a_counter ; }
'  $file

将模式修改为变量后,我想将该模式包含到 printf 命令中,位于计数旁边:

awk -v a="$GENE1" ' BEGIN {  print "The number of times", a, " appears in the file are:" ; }
$0 ~ a {  a_counter+=1  ;  }
END {  printf "%s\n", a, a_counter ; }
'  $file

现在它只打印a的值,而不打印a_counter的值。我读到了printf更复杂,我可能不应该添加用“,”分隔的多个字符串,就像我可以做的那样print。但我找不到正确的方法?我当然可以坚持print,但我想了解我做错了什么printf?


您需要一个格式字符串,例如%s,对于每个变量。所以,尝试:

printf "%s %s\n", a, a_counter

Or:

printf "pattern=%s and count=%s\n", a, a_counter

%s将任何变量转换为字符串。如果变量是数字,则其他格式,例如%f or %e,让您可以更好地控制如何将数字转换为字符串。看man awk了解详情。

Examples

$ awk -v a="genie" -v a_counter=3 'BEGIN{ printf "%s %s\n", a, a_counter }' 
genie 3
$ awk -v a="genie" -v a_counter=3 'BEGIN{ printf "pattern=%s and count=%s\n", a, a_counter }' 
pattern=genie and count=3
$ awk -v a="genie" -v a_counter=3 'BEGIN{ printf "pattern=%s and count=%7.2f\n", a, a_counter }' 
pattern=genie and count=   3.00
$ awk -v a="genie" -v a_counter=3 'BEGIN{ printf "pattern=%s and count=%9.2e\n", a, a_counter }' 
pattern=genie and count= 3.00e+00
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

awk 的 printf 插入多个变量的正确语法是什么? 的相关文章

随机推荐

  • 从一张表更新并插入另一张表

    我有两张桌子 table1 ID 代码 姓名 table2 ID 代码 姓名 具有相同的列 我想将数据从 table1 插入到 table2 或更新列 如果 table2 中存在 table1 ID table2 ID 执行此操作的简单方法
  • 返回用 with open 打开的文件句柄?

    我正在创建我想要接受压缩文件的软件 由于文件在任何地方都可以读取 写入 因此我创建了一个用于打开文件的实用程序函数 它可以为我处理某些压缩文件类型的打开 关闭 示例代码 def return file handle input file o
  • 无法通过 Vue.js 从 Laravel 后端下载文件 (pdf)(Axios 帖子)

    我在 Vue 中有一个多步骤表单 一旦收集到所有信息 我就会将结果发布到 Laravel 控制器 这是网站的经过验证的区域 我正在使用护照 所以本质上我有一个 Vue SPA 它是在 Laravel 5 7 框架内构建的网站的管理区域 Vu
  • 在 gradle 中,我应该排除分支下的所有依赖项还是只排除根就足够了?

    我已将以下自定义任务添加到我的build gradlefile 为了打印出依赖项的依赖项 This part is useful for finding conflict resolution s between dependencies
  • Java 7 默认语言环境

    我刚刚安装了 jre7 我很惊讶地发现我的默认区域设置现在是 en US 对于jre6 它是de CH 与jre7有什么不同 默认区域设置不再是操作系统之一吗 顺便说一句 我使用的是Windows7 谢谢你的回答 编辑 我已经看到了语言环境
  • 如何通过我的活动在 Android 中设置铃声?

    我正在尝试找到一种方法来通过 Android 活动中的代码设置新的默认铃声 我已经将铃声下载到bytearray 最后 我设法将默认铃声设置为我下载的铃声 下面不包含下载代码 仅包含将其设置为默认铃声所需的代码 File k new Fil
  • 在 VS Code 中使用 Prettier 格式化 .ejs 文件

    我想使用 prettier 通过添加自定义规则来格式化我的 ejs 文件 现在我正在使用 html 的文件关联作为 ejs 文件 我在 settings json 文件中添加了以下代码 文件 关联 ejs html 不幸的是 Prettie
  • 使用 WebDriver 单击新打开的选项卡中的链接

    有人可以在这种情况下帮助我吗 场景是 有一个网页 我仅在新选项卡中打开所有指定的链接 现在我尝试单击新打开的选项卡中的任何一个链接 在下面尝试过 但它仅单击主 第一个选项卡中的一个链接 而不是在新选项卡中 new Actions drive
  • 吉夫伦致命信号11

    我正在尝试使用一些本机代码来创建 Gif 我使用绘画绘制图像 创建一些笔画 单击 保存 绘制的图像将保存为 JPG 格式 当我单击 创建 Gif 时 它会获取所有图像并开始创建 gif 这是当我收到致命信号 11 并且应用程序重新启动时 我
  • jquery数据表跨页行数

    我正在为我的 HTML 表使用 jQuery DataTables 插件 有没有办法跨页获取我的表格中的行数的行数 例如 如果我有70我的表中的行 比方说50其中显示在第一页上 并且20在第二页 有没有办法得到计数70 我已经尝试了这篇文章
  • Android 中的列表(特别是 RecyclerView 和 CardView)如何工作

    请原谅我问这个问题 但我是 Android 开发新手 尽管我正在尝试了解developer android com 网站上的基础知识 但大多数示例 即使他们说它们是为 Android Studio 构建的 尚未设置为使用 Gradle 因此
  • 从文件中删除特定行

    这些是我的示例文件的内容 abcdefg hijk lmnopqrstAB CSTAKLJSKDJD KSA FIND ME akjsdkjhwjkjhasfkajbsdh ADHKJAHSKDJH 我需要查找并删除文件内的 FIND ME
  • 如何在Python中将提取的文本从PDF转换为JSON或XML格式?

    我正在使用 PyPDF2 从 PDF 文件中提取数据 然后转换为文本格式 该文件的 PDF 格式如下 Name John Address 123street USA Phone No 123456 Gender Male Name Jim
  • 改造中的多个队列导致内存不足错误?

    我正在使用retrofit2 做我的项目 当我的呼叫失败时 我再次重复相同的呼叫 重复此 呼叫使我的应用程序强制关闭 当我查看日志时 我得到了错误日志 如下所示 我觉得这是由于同一呼叫的多次排队造成的 所以我在排队之前就这样做了 我打电话给
  • 构建 Internet Explorer 扩展/附加组件?

    我想为 IE 7 8 构建一个浏览器扩展 我想使用 NET 来做到这一点 您知道我可以参考哪些资源或教程来执行此操作吗 我还没有发现太多 Thanks JP 使 IE 扩展难以开发的主要问题之一是需要使用 C 或 NET 进行开发 另一方面
  • Oracle Java 教程 - 回答问题时可能出现错误

    我是 Java 新手 正在阅读 Oracle 教程 每个部分之后都有问题和答案 我不明白一个答案中的一句话 见下面的粗体线 来源是https docs oracle com javase tutorial java javaOO QandE
  • 如何插入UUID的值?

    我在 Play Framework 2 3 支持的 postgresql 9 4 中使用 anorm 2 4 给出一个这样的模型 case class EmailQueue id UUID send from String send to
  • 挑战:优化取消列出[简单]

    因为 SO 最近有点慢 所以我发布了一个简单的问题 如果大鱼们能在这场比赛中留在替补席上并给新秀们一个回应的机会 我将不胜感激 有时我们的对象具有大量的大列表元素 向量 您如何将这个对象 取消列出 到单个向量中 证明你的方法比unlist
  • 如何在 Openfire 中使用 smack

    你好 我计划开发一个可以连接到 gtalk facebook 等的聊天客户端 我决定将 smack API 与 openfire 一起使用 但我需要很少的指导来了解如何将它与 openfire 服务器一起使用 openfire 是否提供了基
  • awk 的 printf 插入多个变量的正确语法是什么?

    我复制了一些使用 printf 输出字符串在文件中出现的频率的代码 awk BEGIN print The number of times a appears in the file a a counter 1 END printf s n