awk - 如果为 null,则打印最后一列值并使用默认值

2024-02-01

我正在使用 awk 命令来打印值。对于最后一列,如果没有找到值,我需要它来打印NA.

例如,在下面的代码中,当$3 is NULL,我需要打印为NA.

无论如何我可以包括一个if/isnull条件什么的。

awk -F"    " '{ print $1,"|", $2, "|", $3 }' log_temp.txt > log_template.txt

无论如何,我是否可以包含“if”/“isnull”条件或其他条件。

你需要使用三元运算符 https://en.wikipedia.org/wiki/%3F:#AWK

Syntax:

condition ? value_if_true : value_if_false

对于第三列

awk '{ print ($3==""?"NA":$3) }' infile

所以它变成了

awk '{ print $1, "|" , $2, "|",  ($3==""?"NA":$3) }' infile

您还可以设置输出字段分隔符变量(OFS)

awk -v OFS='|' '{ print $1, $2, ($3=="" ? "NA" : $3) }' infile

print ($3=="" ? "NA" : $3)

if( $3=="" ){
    print "NA"
}else{
    print $3
}  

对于最后一列,您可以使用NF给出没有字段的变量 记录,而$NF是最后一列

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

awk - 如果为 null,则打印最后一列值并使用默认值 的相关文章

  • BASH - 随机排列文件中字符串中的字符

    我有一个文件 filename txt 具有以下结构 gt line1 ABC gt line2 DEF gt line3 GHI gt line4 JKL 我想打乱字符串中的字符not开始机智 gt 输出将 例如 如下所示 gt line
  • 如果字段重复则删除行

    如果第一个字段重复 则寻找 awk 或 sed 单行代码以从输出中删除行 我见过的删除重复行的示例是 awk a 0 a 0 尝试使用它作为基础 但没有运气 我认为将 0 更改为 1 可以解决问题 但似乎不起作用 awk if a 1 0
  • 在 Mercurial 中配置 eol 扩展时出现问题

    我正在尝试将 UNIX 托管的 Mercurial 存储库克隆到 Windows 计算机 我希望使用eol扩展名 以便我在服务器上以 LF 结尾的文本文件在克隆到 Windows 计算机时具有 CRLF 以前我用过win32文本扩展效果很好
  • 如何在 ruby​​ 中后台运行多个外部命令

    给定这个 Unix shell 脚本 test sh bin sh sleep 2 sleep 5 sleep 1 wait 时间 test sh real 0m5 008s user 0m0 040s sys 0m0 000s 如何在 U
  • 如何使用 shell 脚本 ftp 多个文件

    我正在尝试使用 shell 脚本将多个文件从一台计算机传输到另一台计算机 下面是我的脚本 ftp nv lt
  • PHP exec - 检查是否启用或禁用

    有没有办法检查 php 脚本是否exec 在服务器上启用还是禁用 这将检查该功能是否确实有效 权限 权利等 if exec echo EXEC EXEC echo exec works
  • 如何触发并忘记子进程?

    我有一个长时间运行的进程 我需要它来启动另一个进程 该进程也会运行很长一段时间 我只需要开始它 然后就完全忘记它 我设法通过从 Ruby 编程 一书中获取一些代码来完成我需要的操作 但我想找到最好 正确的方法 并了解发生了什么 这是我最初得
  • 将文本文件转换为逗号分隔的字符串

    我似乎没有找到与这个问题完全匹配的问题 我有一个文本文件 每行有一个文本标记 没有任何逗号 制表符或引号 我想根据文件内容创建一个逗号分隔的字符串 Input one two three Output one two three 我正在使用
  • 如何以“less”显示行号(GNU)

    执行的命令是什么less https linux die net man 1 less在左栏中显示行号 来自manual http unixhelp ed ac uk CGI man cgi less N 或 行号 导致在每个行的开头显示行
  • 使用 Shell 脚本提供密码

    我已将客户端和服务器设置为无密码登录 就像无密码登录一样 通过将服务器的 RSA 密钥复制到所有客户端的 root ssh id rsa pub 来实现 但这是我手动完成的 我喜欢使用 shell 脚本自动执行此过程 并通过脚本向计算机提供
  • 在 Unix 中,我可以在目录中运行“make”而无需先 cd 到该目录吗?

    在 Unix 中 我可以运行make在没有的目录中cd首先进入该目录 make C path to dir
  • 将用户添加到组但运行“id”时未反映

    R 创建了一个名为 Staff 的组 我希望能够在不以 sudo 身份启动 R 的情况下更新软件包 所以我使用以下方法将自己添加到员工中 sudo usermod G adm dialout cdrom plugdev lpadmin ad
  • 使用 setcap 功能运行时 JLI_InitArgProcessing 的 Java“符号查找错误”

    我们在服务器上安装了 Java 11 旨在监视网络接口的流量 初始安装后 yum install java 11 openjdk devel x86 64 the java命令对两者都适用root and a 普通用户 但是 我们的 Jav
  • Windows 中“nice”的等效词

    Windows 中是否有相当于 Unix 命令的命令 nice 我正在专门寻找可以在命令行中使用的东西 并且not任务管理器中的 设置优先级 菜单 我在谷歌上寻找这个的尝试被那些想不出更好形容词的人挫败了 如果您想在启动进程时设置优先级 您
  • 如何用 C 语言练习 Unix 编程?

    经过五年的专业 Java 以及较小程度上的 Python 编程并慢慢感觉到我的计算机科学教育逐渐消失 我决定要拓宽我的视野 对世界的一般用处 并做一些 对我来说 感觉更重要的事情就像我真的对机器有影响一样 我选择学习 C 和 Unix 编程
  • Linux 文本文件操作

    我有一个格式的文件 a href a href a href a href 我需要选择 之后但 之前的文本 并将其打印在行尾 添加后 例如 a href http www wowhead com search Su a a a a a
  • 通过名称查找进程ID

    如何在 Ruby 中通过名称或完整命令行找到 pid 而不调用外部可执行文件 我正在将 SIGUSR2 发送到命令行包含的进程ruby job rb 我想在不打电话的情况下执行以下操作pgrep uid Process uid pid pg
  • 在C语言中如何清屏? [复制]

    这个问题在这里已经有答案了 我想清除屏幕上的所有文字 我尝试过使用 include
  • sleep 0 有特殊含义吗?

    我看到很多用法sleep 0在我的一个客户项目中 代码看起来像这样 while true sleep 0 end 阅读一些像这样的答案this https stackoverflow com questions 3727420 signif
  • 文本处理问题:删除其中一列不包含特定值的行

    我有一个制表符分隔的文件 如下所示 input sequence match sequence score receptor group epitope antigen organism ASRPPGGVNEQF ASRPPGGVNEQF

随机推荐

  • 将 netcat 与 bash 上的聊天结合起来以实现自动 udp 响应

    我想在 Linux 上结合 chat 和 nc 所以我将创建一个小型 udp 服务器 它响应特定请求并发回答案 事实上 我想将 nc 的标准输出重定向到 聊天 的标准输入 反之亦然 我的第一次尝试是 nc w 3000 u n l p 30
  • 禁用访问日志中的查询字符串

    长话短说 用户密码通过 url 传递纯文本 可怕 是的 但不是我的想法 并且此查询字符串存储在访问日志中 我们显然不希望如此明显 有没有办法在不禁用 CustomLog 的情况下防止查询字符串存储在访问日志中 Your common日志格式
  • 多线程Windows服务的线程库[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 UITextField 增加到一定长度

    我有一个 UITextField 我想 自动 调整其边界大小 以便为字段中添加的字符串腾出空间 但是 我希望它的宽度达到一定程度的最大值 我可以采取的最佳方法是什么 谢谢你的帮助 EDIT 测试视图 h import
  • Haskell —— 是否有元组的 monad 序列函数?

    假设我有一个类型的值Monad m gt m a m a 我想对这对进行 排序 以创建类型的值Monad m gt m a a 它以与 序列 函数相同的方式组合两个值的单子上下文 是否有一些标准功能或标准方法可以做到这一点 这个操作还有意义
  • 每个页面加载的计时器减量都会有所不同

    我的项目有一个计时器 每次减少 1 秒 但是 如果计数器第二次开始工作 它会减少 2 秒 第三次则减少 3 秒 依此类推 我应该怎么做才能始终减少 1 秒 void viewDidAppear BOOL animated count 15
  • 计算大于另一个整数 x 的 k 位集合的最小整数?

    我想精确地计算最小整数k位设置 大于另一个整数x 例如如果x 1001010然后 为了k 2 答案应该是1010000 for k 4 答案应该是1001011并为k 5答案是1001111 我认为需要设置至少与整数中最左边设置的位一样多的
  • JSHint 奇怪的行为

    我认为我应该问关于 jSHint 的新问题 讨论开始了here https stackoverflow com questions 35987052 js strange behavior 我现在可以看到来自 JSHint 的奇怪警告 我只
  • 从 KMS CipherTextBlob 获取 KMS 密钥

    如何从密文 blob 中获取 KMS 密钥信息 以aws网站为例 AWS KMS 文档 http docs aws amazon com cli latest reference kms encrypt html aws kms encry
  • Matlab 和 XTickLabel

    我已经尝试让 Matlab 更改轮廓图上的标签大约一个小时了 当我去更改 XTickLabel 或 XTick 时 它只是完全删除我的 x 轴 令人沮丧和愤怒的是我正在做的事情exactly什么所有的帮助页面 http www mathwo
  • 使用 Git 版本控制查看文件的更改历史记录

    如何查看单个文件的历史记录以及更改内容的完整详细信息 git log filename 显示文件的提交历史记录 但如何查看已更改的文件内容 这让 Git 为每个日志条目生成补丁 git log p filename See git help
  • 如何使css/images/js文件等所有静态文件不被asp.net mvc处理?

    静态文件有可能不被asp net mvc引擎处理吗 我可以在 IIS 级别或其他级别执行此操作吗 当然无需为静态文件创建单独的 IIS 网站 您需要为不希望通过 ASP NET MVC 提供服务的特定类型的文件创建忽略路由 针对您要忽略的文
  • 切换 kivy 小部件

    我正在使用 Kivy python 库 我定义了两个小部件 当程序运行时 我运行第一个小部件 当按下该小部件按钮时 我希望它消失并被第二个小部件替换 这是两个小部件的 kv uitest kv
  • 确定 MouseListener 中单击的 JPanel 组件。事件处理

    我有一个扩展 JPanel 的类 public class ButtonPanel extends JPanel private label public ButtonPanel label new JLabel waiting for c
  • Cypress 组件测试拦截 getServerSideProps 请求

    使用 cypress 组件测试时无法弄清楚如何拦截 getServerSideProps 做了很多研究和最好的线索链接 https github com cypress io cypress discussions 9328 https g
  • 注册表模式 vs 服务定位器模式 vs 依赖注入容器

    它们之间有什么区别而不是通过键设置和获取数组中的对象吗 class Registry private container array public static function Set name object self container
  • 除了 malloc/free 之外,程序还需要操作系统提供其他东西吗?

    我正在为我正在开发的操作系统设计内核 我实际上将其称为 核心 只是为了有所不同 但它基本上是相同的 如果我无法启动和运行多任务处理 内存管理和其他基本功能 那么操作系统本身的细节就无关紧要了 所以我需要首先解决这个问题 我有一些关于设计 m
  • 如何使用 Java 获取 AWS Glue 客户端

    我正在尝试从用 Java 编写的 Lambda 代码调用 AWS Glue 中的作业 但我无法获得 Glue 客户端 就像我们有这样的 DynamoClient AmazonDynamoDB client AmazonDynamoDBCli
  • 如何在保留空格的同时分割()字符串[重复]

    这个问题在这里已经有答案了 如何拆分一串单词并保留空格 这是代码 String words s split 字符串 s 包含 hello world 代码运行后 words 包含 hello world 理想情况下 它不应该是中间的空字符串
  • awk - 如果为 null,则打印最后一列值并使用默认值

    我正在使用 awk 命令来打印值 对于最后一列 如果没有找到值 我需要它来打印NA 例如 在下面的代码中 当 3 is NULL 我需要打印为NA 无论如何我可以包括一个if isnull条件什么的 awk F print 1 2 3 lo