微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

awk脚本头文件:#!/ bin / bash或#!/ bin / awk -f?

一个awk文件中,例如example.awk,头部应该是#!/bin/bash还是#!/bin/awk -f ?

我的问题的原因是,如果我在控制台中尝试这个命令,我收到正确的file.txt与“文本行”:

awk 'BEGIN {print "line of text"}' >> file.txt

但如果我尝试用./example.awk执行以下文件

#! /bin/awk -f awk 'BEGIN {print "line of text"}' >> file.txt

它返回一个错误

如何在一行或多行中查找具有相同值的行,并使用awk添加

删除awk中的 r n

拆分string(例如与bash),但跳过它的一部分

使用AWK过滤基于列数的行

文件读入variables – Bash脚本take2

$ ./awk-usage.awk awk: ./awk-usage.awk:3: awk 'BEGIN {print "line of text"}' >> file.txt awk: ./awk-usage.awk:3: ^ invalid char ''' in expression

如果我将标题更改为#!/bin/bash或#!/bin/sh它将起作用。

我的错误是什么? 这是什么原因?

如何在Ubuntu中使用bash翻转文件中的所有单词?

如何在awk / sed中多次出现两个标记模式之间select行

通过使用grep来计算第1位和第14位之间的零的数量

我可以通过Linux的cut命令改变输出字段的顺序吗?

如何在使用sh而不是bash运行的脚本中使用进程replace?

既然你明确地运行了awk命令,你应该使用#!/bin/bash 。 你可以使用#!/bin/awk如果你删除了awk命令并且只包含awk程序(例如BEGIN {print "line of text"} ),但是你需要使用awk语法附加到file ( print ... >> file )。

awk -f需要一个包含awk脚本的文件,这样在这里完全是错误的。

您的脚本是一个恰好包含awk命令的shell脚本。

#! /bin/sh #! /bin/sh告诉你的shell使用/bin/sh作为一个shell命令来执行这个文件 – 这是一个shell命令。 如果用#! /bin/awk -f替换它#! /bin/awk -f #! /bin/awk -f然后用awk执行文件,基本上和执行一样

/bin/awk -f awk 'BEGIN {print "line of text"}' >> file.txt

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐