awk gsub 和神秘的 "1"

标签 awk gsub

我认为这是一个更普遍的理解问题,但这是我的问题: 如果我在终端中运行以下命令:

awk '{gsub("a","H")}1'

在文件marks.txt上:

1) 阿米特物理 80
2) 拉胡尔数学90
3) 夏姆生物学87
4) 基达尔英语85
5)哈里历史89

我得到以下结果:

1) 阿米特物理 80
2) RHhul MHths 90
3) ShyHm 生物学 87
4) KedHr英语85
5) HHri 历史 89

但是如果我在没有“1”的情况下运行它,我什么也得不到。

awk '{gsub("a","H")}'

为什么这个如此重要?它代表什么?

提前谢谢您!

最佳答案

Awk 适用于 condition { action } 表达式,其中默认操作为 print $0。当您将 1 写入为条件时,则该条件为真,因此会调用打印当前记录的默认操作。

关于awk gsub 和神秘的 "1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52502311/

相关文章:

regex - 重命名文件或移动文件(如果在 Linux bash 中以逗号分隔)

awk - SED 在删除后不处理 {} 中的多个命令)、追加)或更改)

regex - 删除带括号的子表达式

Ruby 仅替换作为哈希传递的多个正则表达式的第一次出现

r - 如何计算R中的第二个单词字符串

regex - awk regex 我怎样才能匹配或捕获这个字符串

bash - 替换 yaml 文件中的行

regex - 无法使提到的正则表达式在 sed 命令中工作

ruby - 替换特殊字符 Ruby

regex - gsub错误将R中的大小写转换为小写