linux - AWK编程,条件语句

标签 linux bash awk

此 awk 命令将对每一行执行“stuff 1”,仅对第一行执行“stuff 2”,对第一行以外的行执行“stuff 3”。

awk '{ { Do stuff 1 } if(NR==1) { Do stuff 2 } else { Do stuff 3 } }'

基于以上内容,下面将为每一行执行“stuff 1”,当该行不是第一行时执行“stuff 2”,对每一行(包括第一行)执行“stuff 3”正确??

awk '{ Do stuff 1 } NR!=1 { Do stuff 2 } { Do stuff 3 }'

或者 'stuff 2' 和 'stuff 3' 只对 NR!=1 的行执行吗??

最佳答案

在 5 行输入上:

ls -1 | awk '{ print "allways"; } NR!=1 { print NR"-"2; } { print NR"-"3 }'
allways
1-3
allways
2-2
2-3
allways
3-2
3-3
allways
4-2
4-3
allways
5-2
5-3

因此,stuff3 总是完成(与 stuff1 完全一样)。只有 stuff2 受条件影响。

关于linux - AWK编程,条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10346664/

相关文章:

xml - XPath Script 不适用于输入一,但对输入二工作得很好

bash - awk sub() 按位置获取子字符串

linux - fcitx 不适用于 emacsclient --create-frame

c - 如何让链接器报告它为给定函数链接到的位置

linux - 安装 perl 以便可以通过多个路径访问它

bash - 使用 awk 将一行分成多行

linux - 使用 sed/awk/grep 从 HTML 中解析包的版本?

php - Ubuntu 中 Eclipse 中的 PDT/PHP 插件无法正常工作 - “page not found” 错误

regex - 内存部分的 Sed 用法

swift - 在 swift 中运行终端命令不起作用