作者likecyndi ()
站内Programming
标题[问题](awk) pattern与action之间执行的关系
时间Wed May 8 18:04:37 2013
最近在看awk的资料 知道是由pattern + {action} 去组合而成
接着写script去执行以下程式
echo a
awk 'BEGIN {printf("%s\n", "abc")}'
echo b
awk '{printf("%s\n", "abc")}'
echo c
只会印出
a
abc
b
就停住,要按enter 才会印出第二次的abc,每按一次印一次script不会结束
永远印不出c
接着只要把
awk '{printf("%s\n", "abc")}'
改成
echo 1 | awk '{printf("%s\n", "abc")}'
就会印出
a
abc
b
abc
c
并且跳出script
想请问一下,是什麽原因造成的,差异点在哪??
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.20.230.25
1F:推 izuk:X第一例没给资料 所以不会动。enter=给空资料 116.59.238.192 05/08 18:52
2F:→ MOONRAKER:你以为awk是干什麽的… 118.163.12.174 05/08 19:08
3F:→ likecyndi:感谢izuk大的说明~所以加BEGIN之後 是因 211.20.230.25 05/09 08:59
4F:→ likecyndi:为在之前就做了~所以才会印出来吗?? 211.20.230.25 05/09 08:59
5F:→ likecyndi:那这麽说的话~我按enter之後,就有资料 211.20.230.25 05/09 09:00
6F:→ likecyndi:为什麽script不会结束?? 这里就不太懂 211.20.230.25 05/09 09:01
7F:→ likecyndi:MOONRAKER大 就目前的认知~处理资料? 211.20.230.25 05/09 09:10
8F:→ MOONRAKER:awk每一个block前面要写regex pattern 1.34.60.15 05/10 02:45
9F:→ MOONRAKER:符合那个block才会执行!不写pattern表 1.34.60.15 05/10 02:46
10F:→ MOONRAKER:示每一行都会执行!BEGIN是整个程式开始 1.34.60.15 05/10 02:46
11F:→ MOONRAKER:的时候就要执行,END是最後执行,有这 1.34.60.15 05/10 02:46
12F:→ MOONRAKER:两个directive的block不需要输入! 1.34.60.15 05/10 02:47
13F:→ MOONRAKER:你完全不知道awk在干嘛!找有输入输出的 1.34.60.15 05/10 02:49
14F:→ MOONRAKER:范例来看,不要用想的! 1.34.60.15 05/10 02:49
15F:→ likecyndi:感谢 MOONRAKER大的说明,关於awk的部分 211.20.230.25 05/10 12:53
16F:→ likecyndi:会再找相关资料弄懂 感谢 211.20.230.25 05/10 12:53
17F:→ shemale:awk和sed是我写shell必用工具,最近加perl 115.43.48.81 05/27 06:53
18F:→ shemale:但sed的精神,我仍无法完全掌握 115.43.48.81 05/27 06:54