【发布时间】:2017-04-10 15:45:26
【问题描述】:
当您仔细查看过去几周我提出的问题时,您会发现我提出了与此类似的问题。我有问题要以要求的格式提出,因为我真的不知道我的问题来自哪里。 E. Morton 告诉我不要使用范围表达式。好吧,我不知道它们到底是什么。我在这个论坛中发现了许多与我类似的问题,并且有有效的答案。
喜欢:“如何从匹配中打印以下行”(e.g.)
但是当我处理多个输入文件时,我发现的所有解决方案都会停止工作。我需要处理很多。 我使用这个命令:
gawk -f 1.awk print*.csv > new.txt
而 1.awk 包含:
BEGIN { OFS=FS=";"
pattern="row4"
}
go {print} $0 ~ pattern {go = 1}
输入文件 1 print1.csv 包含:
row1;something;in;this;row;;;;;;;
row2;something;in;this;row;;;;;;;
row3;something;in;this;row;;;;;;;
row4;don't;need;to;match;the;whole;line,;
row5;something;in;this;row;;;;;;;
row6;something;in;this;row;;;;;;;
row7;something;in;this;row;;;;;;;
row8;something;in;this;row;;;;;;;
row9;something;in;this;row;;;;;;;
row10;something;in;this;row;;;;;;;
输入文件 2 print2.csv 包含相同内容,仅用于说明目的。
1.awk(以及我在此论坛中找到的从匹配中打印的其他几种方法)适用于一个文件。输出:
row5;something;in;this;row;;;;;;;
row6;something;in;this;row;;;;;;;
row7;something;in;this;row;;;;;;;
row8;something;in;this;row;;;;;;;
row9;something;in;this;row;;;;;;;
row10;something;in;this;row;;;;;;;
但不是在我处理更多输入文件时。 每次我以这种方式处理多个输入文件时,awk 命令“从匹配中打印”似乎都被忽略了。 如前所述,我被告知不要使用范围表达式。我不知道问题是如何以及可能与我输入多个文件的方式有关?
【问题讨论】: