gpt4 book ai didi

regex - awk 在匹配时连接下一行

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:59:41 24 4
gpt4 key购买 nike

我正在使用 awk 分析文本文件并将与正则表达式匹配的行与以下行连接起来。我正在使用以下命令:

awk '/^ [0-9]/{printf $0 ;next;}1' *filename*

当我根据提示测试它时,它按预期工作,但是当我将相同的命令放入 bash 脚本时,输出与输入文件相同。

知道为什么这在 bash 脚本中不起作用吗?

更新

完整的脚本如下:

#!/bin/bash
#

for FILE in $( ls *.raw )
do
awk '/^ [0-9]/{printf $0 ;next;}1' FILE > temp
done

我尝试按照@Kent 的建议使用 awk '/pattern/{printf "%s",$0;next}1' file 但它只会在文件开头添加 %s .

已解决

我修改了命令,使用 getline 将匹配行与以下两行连接起来,如下所示:

(awk '/^ [0-9]/{l1=$0;getline;l2=(l1  $0);getline; print l2 $0}' < input_file) > output_file

最佳答案

我修改了命令,使用 getline 将匹配行与以下两行连接起来,如下所示:

(awk '/^ [0-9]/{l1=$0;getline;l2=(l1  $0);getline; print l2 $0}' < input_file) > output_file

关于regex - awk 在匹配时连接下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21597305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com