Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Awk 一场接一场的第一场比赛_Awk - Fatal编程技术网

Awk 一场接一场的第一场比赛

Awk 一场接一场的第一场比赛,awk,Awk,鉴于此,我想 打印@bash行之后的第一行安装:。请看 该文件用于完整的输入,但这里有一个示例 @ base-files ; few lines install: x86_64/release/base-files/base-files-4.2-3.tar.xz 46428 6372358800e589b ; couple of lines install: x86_64/release/base-files/base-files-4.1-1.tar.bz2 49519 f91ed6eab060

鉴于此,我想 打印
@bash
行之后的第一行
安装:
。请看 该文件用于完整的输入,但这里有一个示例

@ base-files ; few lines install: x86_64/release/base-files/base-files-4.2-3.tar.xz 46428 6372358800e589b ; couple of lines install: x86_64/release/base-files/base-files-4.1-1.tar.bz2 49519 f91ed6eab060c3 @ bash ; few lines install: x86_64/release/bash/bash-4.1.17-9.tar.xz 1107128 e49b8d67d59d8617dfa31c ; couple of lines install: x86_64/release/bash/bash-4.1.16-8.tar.xz 1106812 5aa652ddc0a5d65f4af1e2 source: x86_64/release/bash/bash-4.1.16-8-src.tar.xz 6614280 79bb3ddc67d8f0d3da6 @ bash-completion ; few lines install: x86_64/release/bash-completion/bash-completion-1.3-1.tar.bz2 117489 538 source: x86_64/release/bash-completion/bash-completion-1.3-1-src.tar.bz2 216503 除了这些答案,我还创造了这个

awk '$1=="@" {c=$2} $1=="install:" && c=="bash" {print;exit}'
变量
p
默认为0;读取
@bash
行时,将其设置为1;当读取下一个安装行时,打印它并将p设置为2,这样就不会打印其他安装行。我想,您也可以退出,而不是设置
p=2

变量
p
默认为0;读取
@bash
行时,将其设置为1;当读取下一个安装行时,打印它并将p设置为2,这样就不会打印其他安装行。我想您也可以退出而不是设置
p=2

您可以使用:

awk '/@ bash$/{p=1} p&&/install:/{print; exit}' setup.ini
install: x86_64/release/bash/bash-4.1.17-9.tar.xz 1107128 e49b8d67d59d8617dfa31c
您可以使用:

awk '/@ bash$/{p=1} p&&/install:/{print; exit}' setup.ini
install: x86_64/release/bash/bash-4.1.17-9.tar.xz 1107128 e49b8d67d59d8617dfa31c
  • 如果字段一是
    @
    ,则将字段二保存到变量
    c
  • 如果字段一是
    install:
    并且
    c
    bash
    ,则打印并退出
  • 如果字段一是
    @
    ,则将字段二保存到变量
    c
  • 如果字段一是
    install:
    并且
    c
    bash
    ,则打印并退出

你一定是从我的肩膀上读到的——甚至是变量的名称@JonathanLeffler我喜欢退出,它可能有助于处理大型文件是的,我觉得很有趣,我们最终使用了相同的变量名
p
似乎是我最喜欢的
awk
变量名(不知道为什么)。但是
exit
在输入文件在这一行之后很大的情况下会加速。你一定是从我的肩膀上读过了——甚至读到了变量的名称@JonathanLeffler我喜欢退出,它可能有助于处理大型文件是的,我觉得很有趣,我们最终使用了相同的变量名
p
似乎是我最喜欢的
awk
变量名(不知道为什么)。但
exit
在该行之后输入文件较大时会加速。
awk '/^@ bash/ { p = 1 } /^install:/ && p == 1 { print; p = 2 }'
awk '/@ bash$/{p=1} p&&/install:/{print; exit}' setup.ini
install: x86_64/release/bash/bash-4.1.17-9.tar.xz 1107128 e49b8d67d59d8617dfa31c
awk '$1=="@" {c=$2} $1=="install:" && c=="bash" {print;exit}'