【发布时间】:2016-07-14 20:14:04
【问题描述】:
在我的 awk 代码中,我一直试图找到一种方法来遍历文件 (data1.txt) 并附加文件行 并计算文件行,如果 substr($0,29,2) of file == "04"
data1.txt
6597243042 20160305001100003140152852153019000127000200
6597243042 20160305001100003140170306190306020000000200
6597243042 20160305001100003140170552190552020000000200
6597243042 20160305001100003140201430201543000113000400
6592311319 20160305041100003460072719072839000120001200
6592311319 20160305041100003460072927072952000025001200
在这种情况下只有 2 行满足条件 (substr($0,29,2)=="04")
Filename="def"
file="data1.txt"
#awk '{count1=0}'
while IFS= read line
do
awk '{ if (substr($0,29,2)=="04") {print substr($0,29,4)}}'
done <"$file"
【问题讨论】:
-
你会在 unix.stackexchange.com 上获得更好的运气和响应
-
我听不懂你的文字。我会尝试将其编辑为更好的英语,但我根本无法理解您要说的内容。
-
您对 awk 有一个基本的误解 - 您不需要编写外部或内部循环来遍历文件,这就是 awk 所做的。您只需要编写您希望在每一行上执行的
<condition> { <action> }。根据您发布的输入,编辑您的问题以至少提供预期的输出,因为现在我们无法判断您正在尝试做什么。