我有一个日志文件,其中每一行包含一些以 . 分隔的数字,
。我只是想对每个数字进行一些操作。使用 awk 似乎很容易,但不知何故我被卡住了。我用来分割每一行的数组在第一行只被初始化一次。在那之后,阵列并不清楚。split 应该先清除数组然后使用它,我什至使用过delete array
. 但问题仍然存在。任何帮助将不胜感激。
下面是一些例子;这是一个示例文件
[[bash_prompt$]]$ cat log
1,2,3
2
9
1,4
5,7
7
8
6,2
这就是我得到的
[[bash_prompt$]]$ awk '{print "New Line " $1; delete a; split($1,a,","); for(var in a){ print "Array Element " var; } }' log
New Line 1,2,3
Array Element 1
Array Element 2
Array Element 3
New Line 2
Array Element 1
New Line 9
Array Element 1
New Line 1,4
Array Element 1
Array Element 2
New Line 5,7
Array Element 1
Array Element 2
New Line 7
Array Element 1
New Line 8
Array Element 1
New Line 6,2
Array Element 1
Array Element 2
但以下是我所期待的
[[bash_prompt$]]$ awk '{print "New Line " $1; delete a; split($1,a,","); for(var in a){ print "Array Element " var; } }' log
New Line 1,2,3
Array Element 1
Array Element 2
Array Element 3
New Line 2
Array Element 2
New Line 9
Array Element 9
New Line 1,4
Array Element 1
Array Element 4
New Line 5,7
Array Element 5
Array Element 7
New Line 7
Array Element 7
New Line 8
Array Element 8
New Line 6,2
Array Element 6
Array Element 2
我的是 GNU awk 3.1.5。我还通过结合使用 shell 和 awk 找到了另一种方法,(在每一行上单独运行 awk)但我想知道我做错了什么