匹配时尴尬的连接下线



我正在使用awk分析文本文件和连接线与正则行与以下行匹配。我正在使用以下命令:

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

当我从提示下对其进行测试时,它可以按预期工作,但是当我将同一命令放在bash脚本中时,输出与输入文件相同。

对为什么这不应该在bash脚本中起作用的任何想法?

update

这是完整的脚本:

#!/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使用getline将匹配行与以下两个行连接:

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

相关内容

  • 没有找到相关文章

最新更新