首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWK命令帮助

AWK命令帮助
EN

Stack Overflow用户
提问于 2011-04-26 00:38:40
回答 2查看 506关注 0票数 1

我有一个家庭作业,这就是问题所在。

使用awk创建一个命令,用于显示特定文件的每个字段。

在文件开头显示日期,并在输出的开头加上一行和标题。

我已经读过这本书,但不太明白,下面是我的内容:

代码语言:javascript
复制
BEGIN {
{"date" | getline d }
{ printf "\t %s\n,d }
{ print "Heading\n" }
{ print "=====================\n }
}
{ code to display each field of file??? }
EN

回答 2

Stack Overflow用户

发布于 2011-04-26 01:13:22

关于awk的一些提示:

awk程序的格式为

代码语言:javascript
复制
expression { action; ... }
expression { action; ... }
...

如果表达式的计算结果为true,则执行动作块。表达式的一些示例:

代码语言:javascript
复制
BEGIN       # true before any lines of input are read
END         # true after the last line of input has been read
/pattern/   # true if the current line matches the pattern
NR < 10     # true if the current line number is less than 10

如果您希望在每一行上执行操作,则可以省略该表达式。

所以,你的BEGIN块有太多的花括号:

代码语言:javascript
复制
BEGIN {
    "date" | getline d 
    printf("\t %s\n\n",d)
    print "Heading" 
    print "====================="
}

你也可以写成

代码语言:javascript
复制
BEGIN {
    system("date")
    print ""
    print "Heading" 
    print "====================="
}

或者在awk外部执行date命令,并将结果作为awk变量传入

代码语言:javascript
复制
awk -v d="$(date)" '
    BEGIN {
        printf("%s\n\n%s\n%s\n", 
            d,
            "heading",
            "======")
    }

打印命令隐式地在输出中添加一个新行,因此print "foo\n"; print "bar"将在"foo“之后打印一个空行。printf命令要求您在格式字符串中添加换行符。

我不能为你提供更多关于“打印每个字段的代码”。Luuk显示print $0将打印所有字段。如果这不能满足您的需求,则必须更具体。

票数 3
EN

Stack Overflow用户

发布于 2011-04-26 00:55:29

代码语言:javascript
复制
{"date" | getline d }

为什么不简单地打印当前日期{ print strftime(“%y-%m-%d%H:%M”);}

以及:

代码语言:javascript
复制
{ code to display each field of file??? }

简单地做

代码语言:javascript
复制
{ print $0; }

如果你只想要第一个字段,你应该这样做:

代码语言:javascript
复制
{ print $1; }

如果您只需要第二个字段:

代码语言:javascript
复制
{print $2; }

如果只想要最后一个字段:

代码语言:javascript
复制
{print $NF;}

因为NF是一行上域的个数......

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5780596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档