把它们加起来....
这有效:
awk 'BEGIN { FS=":"; }
{ print $1 $3 $5; }' /etc/passwd
但这并没有:
awk 'BEGIN { FS=":"; }
{ echo $1 $3 $5; }' /etc/passwd
我想知道为什么。
答案1
执行结构awk
为:pattern { action statements }
动作
动作语句用大括号 { 和 } 括起来。操作语句由大多数语言中常见的赋值、条件和循环语句组成。可用的运算符、控制语句和输入/输出语句均按照 C 中的模式进行设计。
print
是 I/O 语句awk
。来自联机帮助页:
print Print the current record. The output record is terminated with the value of ORS.
访问手册>打印声明:
打印声明
使用 print 语句以简单、标准化的格式生成输出。您仅在以逗号分隔的列表中指定要打印的字符串或数字。它们是输出,由单个空格分隔,后跟换行符。该声明如下所示:
print item1, item2, …
访问man awk
以了解更多详情。
另请注意:
PATTERNS AND ACTIONS
AWK is a line-oriented language. The pattern comes first, and then the action. Action statements are
enclosed in { and }. Either the pattern may be missing, or the action may be missing, but, of course, not
both. If the pattern is missing, the action is executed for every single record of input. A missing action
is equivalent to
{ print }
which prints the entire record.
awk
没有echo
关键字/语句。
$ man awk | grep echo | wc -l
0