在 shell 脚本中调用 awk

2023-11-24

我有这个命令,如果直接在终端上运行,它可以正确执行。

awk '/word/ {print NR}' file.txt | head -n 1

目的是找到单词所在行的行号'word'首先出现在file.txt.

但是当我把它放在脚本文件中时,它似乎不起作用。

#! /bin/sh

if [ $# -ne 2 ]
then
        echo "Usage: $0 <word> <filename>"
        exit 1
fi

awk '/$1/ {print NR}' $2 | head -n 1

那么我做错了什么?

Thanks,


将单引号替换为双引号,以便$1由 shell 评估:

awk "/$1/ {print NR}" $2 | head -n 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 shell 脚本中调用 awk 的相关文章

  • OSX bash 最小化窗口

    在 Mac 中并使用 bash shell 我想执行一个包含单个命令 启动 Jupyter Lab 的文件并立即最小化终端窗口 有没有办法在不安装第三方软件的情况下做到这一点 是的 只需使用osascript https ss64 com
  • 在 iOS 模拟器中安装应用程序的脚本

    我正在尝试自动化构建应用程序 运行单元测试以及最终运行 UI 测试的过程 我正在通过命令行 xcodebuild sdk iphonesimulator6 0 在某个目录中构建应用程序 如何通过命令行 在 Library Applicati
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • 从 UNIX 命令行向串行端口发送字节?

    我想使用命令行将字节流发送到串行端口 这可能吗 我的串口位于 dev cu usbserial A700dYoR在我的 Mac 上 例如 如果我想将整数 50 或字符串 data 发送到该串行端口 我该怎么做 我对 UNIX 的了解非常有限
  • 如何从我自己的脚本向 Fish shell 提供制表符补全?

    我运行的是 Ubuntu 13 10 和 Fish 2 1 0 我想自己编写一个 Python 脚本来从命令行执行一些任务 该脚本将需要命令行参数 我怎样才能编写我的脚本 以便 Fish 可以请求并获取给定参数的可能值 潜在值列表是动态的
  • 如何在 PHP 中运行 shell 脚本?

    我正在尝试使用 PHP 触发 shell 脚本的运行 本质上 当用户在我们用 PHP 编写的网站上完成一个操作时 我们希望触发一个 shell 脚本 该脚本本身调用一个 Java 文件 提前致谢 See shell exec http ph
  • 通过 sed 使用 unix 变量将数据附加到每行末尾[重复]

    这个问题在这里已经有答案了 我有一个文件 我想使用 SED 将值附加到每行末尾的 unix 变量中 我已经通过 AWK 实现了这一点 但我想在 SED 中实现 像这样的东西 我已经尝试过以下命令 但它不起作用 sed i s BATCH R
  • 用于计算数据文件中数字列表的平均值的脚本

    文件data txt包含以下内容 1 00 1 23 54 4 213 2 3 4 脚本的输出应该是 ave 54 646 一些简单的脚本是首选 这是一种方法 awk s 1 END print ave s NR RS file ave 5
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • 如何使用 sed 将空格替换为 \(space)?

    当我使用 sed 将所有空格替换为 X 时 该命令有效 命令为 sed s X g filelist tmp 但是 当我尝试用 space 替换所有出现的空格时 代码是 sed s g filelist tmp 这不起作用 我究竟做错了什么
  • 每个命令都返回“bash:<命令>:找不到命令...”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我刚刚安装了 Scala 并添加了路径gedit bashrc export SCALA HOME home avijit sca
  • Bash 脚本监听按键以继续

    因此 我想编写一个由一系列步骤组成的 bash 脚本 并将其标识为 task 然而 每个步骤都只能完成并且可以根据用户的需要运行 Do task1 if keypressed stop task1 and move on this is t
  • 如何在Shell脚本中解析字符串

    我想在 shell 脚本中解析以下字符串 VERSION 2 6 32 54 0 11 def 这里我想得到两个值 first 263254 second 11 我使用以下方法来获取第一个值 first expr substr VERSIO
  • 如何添加百分比列

    我想计算每行中所有行中的值的百分比并将其添加为另一列 输入 分隔符为 t 1 10 2 10 3 20 4 40 添加第三列的所需输出显示基于第二列中的值计算的百分比 1 10 12 50 2 10 12 50 3 20 25 00 4 4
  • 检查 Bash 数组中是否存在元素[重复]

    这个问题在这里已经有答案了 我想知道是否有一种有效的方法来检查 Bash 数组中是否存在元素 我正在寻找类似于我可以在Python中做的事情 例如 arr a b c d if d in arr do your thing else do
  • shell解析json并循环输出组合变量

    杰斯克喜欢我之前的话题 https stackoverflow com questions 74063588 shell parsing json contains spaces in string 我知道如何解析带有空格的简单 json
  • Bash - 比较 2 个文件列表及其 md5 校验和

    我有 2 个列表 其中包含带有 md5sum 检查的文件 即使文件相同 列表也具有不同的路径 我想检查每个文件的 md5 和 我们正在讨论数千个文件 这就是为什么我需要脚本来仅显示差异 第一个列表是普通列表 第二个列表是文件的当前状态 我想
  • 如何使用 bash 中提供的工具生成一系列非周末日期?

    我想生成一个文件列表 其中名称包含 filename date 例如file 20111101 file 20120703 开始November 1 2011直到今天 应该不包括周末 Thanks 2011年试试这个 for y in 20
  • PHP exec rm -Rf 不适用于子目录

    我试图删除特定文件夹中的所有内容 但它似乎不会影响子文件夹 但它应该 因为 bash 命令是从控制台执行的 system rm Rf some dir 该命令中不需要星号 如果要与文件一起删除目录 请同时删除斜杠 留下斜杠将删除文件 但保留
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可

随机推荐

  • 更改实例变量

    我有这个代码 class Yes def init self self a 1 def yes self if self a 1 print Yes else print No but yes class No Yes def no sel
  • 控制android状态栏图标

    我正在尝试对状态栏中图标的状态进行一些控制 我希望能够执行以下操作 保留图标 在状态栏中可见 只要 当应用程序运行时 即使用户选择清除状态栏 清除状态栏中的图标 如果应用程序退出 即使 特别是 它被杀死 我意识到当应用程序显式退出时我可以将
  • 将 Relay 与 React-Native 结合使用时的条件片段或嵌入式根容器

    我有relay与 一起工作react native 但我对如何最好地利用中继路由和根容器感到困惑 特别是在使用Navigator呈现多条路线 参加以下课程 var Nav React createClass renderScene rout
  • 测试用例和断言语句

    代码在这个问题让我思考 assert value gt 0 Precondition if value gt 0 Doit 我从不写 if 语句 断言就足够了 你全部can做 早早崩溃 经常崩溃 代码完成 states 断言语句使应用程序正
  • 以下位操作的优化机会?

    您认为 haswon 函数还有优化的空间吗 见下文 我认识到将参数类型从 int64 to unsigned int64使该功能比我想象的更快 也许还有优化的机会 更详细地说 我正在写一个连接四个游戏 最近我使用了Profiler很困并认识
  • 如何在 Visual Studio 2008 中自定义复制/粘贴行为?

    如何在 Visual Studio 2008 中自定义复制 粘贴行为 例如我创建一个新的 div div 然后将其复制并粘贴到同一个文件中 VisualStudio 粘贴 div div 而不是我复制的原文 更令人沮丧的是 当我尝试复制一组
  • 通过 Javascript 访问 Google Apps 公共电子表格

    花了很多时间看这个 似乎有关访问 Google apps 电子表格的少量信息维护得不是很好 今年的 Google IO 上宣布了增强的 Google apps 脚本 包括 UI 元素 这让我想到创建一个基于 Google 电子表格中的数据的
  • 在 MVC 操作中将 SSRS 报告导出为 PDF

    是的 我想将 SSRS 报告导出为 PDF 并从我的操作中返回它 我没有任何报告查看器 请建议我如何实现这一目标 到目前为止我已经做到了 public void SqlServerReport NetworkCredential nwc n
  • 指针和数组混淆的 K&R Qsort 示例

    我发现很难理解下面的代码片段 我理解所显示的指向函数风格的指针 但我发现混乱之处在于指示的行中 void qsort void v int left int right int comp void void int i last void
  • 带有数字填充的 CSS 计数器 [重复]

    这个问题在这里已经有答案了 可以垫吗counter数字取决于其价值 div counter reset ruler div gt span display block line height 1rem div gt span before
  • 在VS2022中的wsl2中调试控制台时读取输入

    我在 Visual Studio 2022 中创建了一个控制台应用程序 只有两行 WriteLine 和 ReadLine 在 Windows 上调试它时 会打开一个控制台 显示输出并等待输入 但是 如果我将其切换到 WSL 调试 我会在
  • Java:ArrayList如何管理内存

    在我的数据结构课程中 我们研究了 Java ArrayList 类 以及当用户添加更多元素时它如何增长底层数组 这是可以理解的 但是 我无法弄清楚当从列表中删除大量元素时 此类到底如何释放内存 查看源码 删除元素的方法有3种 public
  • 如何指定退出或中止的方法

    我有一个从 CLI 触发的方法 该方法具有一些显式退出或中止的逻辑路径 我发现 在为此方法编写规范时 RSpec 将其标记为失败 因为退出是异常 这是一个简单的例子 def cli method if condition puts Ever
  • 如何使用 sox 合并多个音频文件

    我使用以下命令通过 sox 将两个音频文件合并为一个 sox end mp3 p pad 6 0 sox m start mp3 output mp3 我想知道如何仅使用一个命令来合并 3 或 4 个音频文件 而不是使用 output mp
  • #java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester

    我正进入 状态java lang NoClassDefFoundError org apache commons digester Digester错误 我被这个错误困扰了一个多月 我已经尝试了所有可用的 Digester 版本 并且还检查
  • 与 Tensorflow 中的常规 LSTMCell 相比,使用 CudnnLSTM 训练时的结果不同

    我正在 Python 中使用 Tensorflow 训练 LSTM 网络 并希望切换到 tf contrib cudnn rnn CudnnLSTM 以加快训练速度 我所做的被替换 cells tf nn rnn cell LSTMCell
  • Google 地图 -“除非更新 Google Play 服务,否则应用程序将无法运行”

    我只是想在这里运行简单的 Google 地图教程 https developers google com maps documentation android start 我正在 Nexus 4 上运行我的应用程序 并且收到带有 更新 按钮
  • Grafana划分2系列

    我试图将两个系列分开以获得它们的比率 例如 我的网站 a com b com c com 为 所有网站 他们每个人都有总部分数和发生错误的统计数据 我想将每个站点的错误 部分显示为条形错误 部分 其中部分 gt 错误到该站点的每个错误 在这
  • Python 正则表达式不工作

    我正在使用以下代码 downloadlink re findall http uploadir com u b str downloadhtml 但是 当我传递以下字符串时
  • 在 shell 脚本中调用 awk

    我有这个命令 如果直接在终端上运行 它可以正确执行 awk word print NR file txt head n 1 目的是找到单词所在行的行号 word 首先出现在file txt 但是当我把它放在脚本文件中时 它似乎不起作用 bi