在一个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行
我可以通过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] 举报,一经查实,本站将立刻删除。