在 awk 中使用双引号[重复]

2024-03-22

该命令将打印a.

echo "line1 a b c" | awk '{ print $2 }'

如果我将单引号更改为双引号,就像这样,它将打印整行。

echo "line1 a b c" | awk "{ print $2 }"

为什么?我知道我应该使用单引号,但是如果我使用双引号,为什么会打印整行?


If the awk命令是单引号的,$2不被 shell 解释,而是作为文字字符串传递$2 to awk. awk那么将会print输入字符串中的第二个空格分隔的标记,在本例中是a.

echo "line1 a b c" | awk '{ print $2 }' # prints the second space-delimited token
> a

If the awk命令是双引号的,$2由 shell 解释。因为$2为空(在本例中),则替换为空字符串。awk看到一个命令,看起来像awk "{ print }",这是打印所有内容的指令。

echo "line1 a b c" | awk '{ print }' # prints all input
> line1 a b c

也可以使用双引号,并转义$,这将导致$不被 shell 解释,而是$2字符串将被传递到awk.

echo "line1 a b c" | awk "{ print \$2 }" # prints the second space-delimited token
> a
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 awk 中使用双引号[重复] 的相关文章

  • 使用 shell 脚本在 docker 容器内运行脚本

    我正在尝试创建一个 shell 脚本来设置 docker 容器 我的脚本文件如下所示 bin bash docker run t i p 5902 5902 name mycontainer privileged myImage new b
  • 干净地销毁System V共享内存段

    我在用shmget shmat and shmctl分别获取和创建共享内存段 将其附加到进程地址空间中并删除它 我想知道进程是否仍然可以使用共享内存段 即使它已被分离并要求使用删除 shmctl id IPC RMID 在一个过程中 我无法
  • 让“git pull”在拉取不同分支时要求确认

    当同时处理许多项目和分支时 我偶尔会犯一些愚蠢的错误 比如拉入错误的分支 例如在分支上master I did git pull origin dangerous code并且有一段时间没有注意到这一点 这个小错误造成了很大的混乱 当我尝试
  • 从 gitlab docker runner 启动声纳扫描仪

    我有一个 CI 工作流程 集成了 linting 作业和代码质量作业 我的 Linting 工作是一个 docker runner 从应用程序代码启动我的 eslint 脚本 然后我的代码质量工作应该启动声纳扫描仪泊坞窗实例 检查我的代码并
  • Linux:通过网络进行屏幕桌面视频捕获和 VNC 帧速率

    抱歉 文字墙很长 TL DR VNC 连接的帧速率是多少 以帧 秒为单位 或者更确切地说 由谁决定 客户端还是服务器 对于桌面屏幕捕获的任何其他建议 但 正确的时间编码 具有不抖动的帧速率 具有稳定的周期 并有可能将其作为未压缩 或无损 图
  • 使用 linux perf 工具测量应用程序的 FLOP

    我想使用 perf Linux 性能计数器子系统的新命令行接口命令 来测量某些应用程序执行的浮点和算术运算的数量 出于测试目的 我使用了我创建的一个简单的虚拟应用程序 请参见下文 因为我找不到任何为测量 FP 和整数运算而定义的 perf
  • 如何获取与文件类型关联的图标路径和索引?

    给定一个文件类型 例如 txt 我怎样才能得到 path index 文件类型的关联图标路径和索引 例如 我想转换 txt into Path SystemRoot system32 imageres dll Index 102 有了这些信
  • 如何从脚本向 sudo 提供密码?

    请注意 这是在我的本地计算机上运行的来宾虚拟机 VBox 我不担心安全性 我正在编写一个将在 Linux Ubuntu VM 上执行的脚本myuser用户 该脚本将在下面创建一个非常大的目录树 etc myapp 目前我必须手动完成所有这些
  • 如何使用 tmuxinator 在 tmux 中拆分水平窗格内的两个垂直窗格

    目前我的 tmuxinator yml 文件中有这个 windows editor layout main horizontal panes vim server rails s 这给了我两个窗口 一个用于编辑器 另一个用于服务器 在编辑器
  • 在64位操作系统上以32位模式和64位模式编译ioctl函数的执行有什么不同?

    我有 64 位 Enterprise SuSE 11 我有一个应用程序 它打开 HIDRAW 设备并在其上操作 ioctl 函数以从该设备获取原始信息 如下所示 struct hidraw devinfo devinfo int fd op
  • Mono 和 WebRequest 速度 - 测试

    在 mono 4 6 2 linux 中 我注意到 wget 下载文件的速度与webclient DownloadString 所以我做了一个小测试来调查 为什么 wget 明显比 C 快 根据我自己的实验 使用 wget 下载 手动读取文
  • 使用 C++ 输出字符串覆盖 Linux 终端上的最后一个字符串

    假设我有一个命令行程序 有没有办法让我说的时候 std cout lt lt stuff 如果我不做std cout lt lt n 在另一个之间std cout lt lt stuff 东西的另一个输出将覆盖同一行上的最后一个东西 清理行
  • 将所有脚本参数复制到另一个变量

    我需要复制所有脚本参数并将它们传递给另一个脚本 我尝试这样做 args printargs sh args echo printargs sh args 但在这种情况下 如果我使用包含空格的参数调用我的父脚本 例如 script sh ar
  • 如何从 C 函数创建 shell 命令

    想知道如何获取一组 C 函数并将它们转换为 shell bash 命令 假设我有一组简单的 C 函数 int fn1 some C code for function 1 int fn2 some C code for function 2
  • Linux TCP服务器:在接受连接之前读取客户端的IP地址

    Related C Winsock API如何在接受连接之前获取连接客户端IP https stackoverflow com questions 716209 c winsock api how to get connecting cli
  • 原生 Linux 应用程序可像 ResHacker 一样编辑 Win32 PE

    我想运行自动修改 dll服务 用户提交特定的 dll 我在服务器上修改它 然后用户可以下载 dll的修改版本 是否有任何本机 Linux 应用程序提供常见的 Win32 PE 修改功能 例如图标 字符串 加速器 对话等 至少提供命令行或脚本
  • Docker DNS 设置

    我尝试使用自定义网络和 dos 设置创建 docker 容器 docker网络创建 driver bridge opt com docker network bridge enable ip masquerade true opt com
  • 在 Ubuntu 上纯粹通过 bash 脚本安装 mysql 5.7

    我想要一个无需任何手动输入即可安装 MySQL 5 7 实例的 bash 脚本 我正在关注数字海洋教程 https www digitalocean com community tutorials how to install mysql
  • 将 stdout 作为命令行 util 的文件名传递?

    我正在使用一个命令行实用程序 该实用程序需要传递文件名以将输出写入 例如 foo o output txt 它唯一写入的东西stdout是一条消息 表明它运行成功 我希望能够通过管道传输写入的所有内容output txt到另一个命令行实用程
  • gnome-terminal 新选项卡,使用别名作为要执行的命令

    我已经创建了一个别名 bashrc文件如下 alias myproject cd Desktop myproject 当我重新启动终端时保存文件后 输入myproject带我到项目目录 但是当我尝试使用别名作为新的命令参数时gnome te

随机推荐

  • 如何恢复电子应用程序中的默认窗口大小?

    有没有办法将电子应用程序中的主窗口恢复到一定大小 为了解释我想要实现的目标 让我举个例子 当我打开 Windows 资源管理器时 它会以特定大小并在特定位置打开 然后我最大化该窗口并关闭资源管理器 下次当我重新启动资源管理器时 它会以与关闭
  • 查找数组中的总和等于零

    给定一个整数数组 找到一组至少有一个总和为 0 的整数 例如 给定 1 8 6 7 2 1 2 5 算法可以输出 1 6 2 2 5 因为这是输入数组的子集 其总和为 0 该解决方案必须在多项式时间内运行 您将很难在多项式时间内完成此任务
  • ActiveX 控件是否被禁用?

    我的 Excel 工作表使用 ActiveX 复选框来控制某些活动 今天他们开始报错 一位运行更高版本 Excel 的同事向我发出了警报 但它仍然可以在我的计算机上运行 我注意到有 Windows 更新 所以我进行了更新 现在它不再在我的计
  • std::vector 到带有自定义分隔符的字符串

    我想复制a的内容vector到一长string带有自定义分隔符 到目前为止 我已经尝试过 h string getLabeledPointsString const string delimiter cpp string Gesture g
  • 数据表到嵌套列表

    我想转换 library data table n lt 12 DT lt data table level1 rep paste0 Manu 1 2 each n 2 level2 rep paste0 Dept 1 4 each n 4
  • 验证 Tensorflow 流中是否存在该文件。使用 tf.gfile.Exists 以字符串张量作为输入

    使用 Tensorflow 我试图在读取文件之前验证文件是否存在tf read file filename 不幸的是 按照我的管道的设置方式 我正在使用以下命令动态生成文件名字符串tf命令 我使用生成文件名字符串tf string join
  • 跟踪 XWindow 协议

    是否可以使用工具跟踪 XWindow 协议 我认为wireshark将是一个很好的框架来承载这样的想法 但似乎没有支持 为了实现这个目标应该做什么 Wiresharkdoes具有剖析X Window协议的能力 但是 您首先必须能够捕获 X
  • 用于多个 Maven 模块项目的 proguard

    我在多模块 Maven 项目中有一个对 proguard 的插件引用 我的项目的功能已经过全面测试并且可以工作 直到我添加 proguard 我的项目的结构 parent pom module a pom module b pom test
  • Maven - 添加集成测试

    尝试将 Maven 构建中的测试拆分为单元测试和集成测试 我正在使用故障安全插件来运行集成测试 并尝试使用 build helper maven plugin 从 src it java 目录添加集成测试 当我尝试进行构建时出现错误 但我看
  • 复制Mysql数据库的数据库结构

    我正在使用 MySql 5 1 数据库 我创建了一个项目数据库 模板数据库 并希望每次用户创建新项目时从应用程序创建同一数据库的副本 如何复制并创建相同结构的新数据库 这样做的命令是什么 如果您只想将表结构等从一个数据库复制到另一个数据库
  • WooCommerce 中的多个订单

    我想在类别页面中按平均评分 DESC 然后按价格 ASC 订购产品 id avgrating price 1 4 10 2 4 5 3 5 7 顺序 3 2 1 所以我尝试了 args meta key wc average rating
  • Flex:跨分辨率应用

    What is the best way to create applications in Flex AIR which look and feel the same irrespective of the screen resoluti
  • Django 接受一个整数到 CharField 中

    我正在学习 django 并创建了一个Page form class像这样 from django import forms class Page forms Form title forms CharField max length 20
  • 如何让我自己的 JavaScript 函数具有必需的参数?

    当我在intellij idea中编写javascript时 我可以检查我正在调用的函数的参数 它会显示类似的内容 我不确定这是否是一个 intellij 功能 它了解标准库 或者它是否是一个 javascript 功能 可以让您将参数标记
  • FabricJS 触摸平移/缩放整个画布

    我需要在 FabricJS 画布上启用触摸缩放 平移 有些库允许在图像上执行此行为 请参阅捏缩放画布 https github com vash15 pinch zoom canvas 或通过鼠标单击事件 参见这个小提琴 http jsfi
  • 如何保持每 5 秒请求一次页面而不耗尽电池电量?

    我正在开发的 Android 应用程序需要每 5 秒在我的服务器上请求一个页面 但我担心这会消耗大量电池 有没有更简单的方法 我当前的方法是每 5 秒循环一次的服务 protected void onHandleIntent Intent
  • 如何使用 extern 在 C++ 中的源文件之间共享 Globe 变量?

    IDE 代码块 13 12 main cpp include
  • python继承:使用参数选择父类

    我在设计一些课程时遇到困难 我希望我的用户能够通过传递角色类型的参数 例如战士 向导 来使用Character 类 虚拟代码 class CharClass def init self level self level level clas
  • 在 MSTest 中如何查找要在 ClassInitialize 或 AssemblyInitialize 中运行的测试总数?

    使用 MStest 我想查找排队等待运行的测试方法的总数 我应该如何捕获这个值ClassInitialize or AssemblyInitialize 方法 我唯一得到的是 TestContext 它没有测试总数的详细信息 我实际上对此有
  • 在 awk 中使用双引号[重复]

    这个问题在这里已经有答案了 该命令将打印a echo line1 a b c awk print 2 如果我将单引号更改为双引号 就像这样 它将打印整行 echo line1 a b c awk print 2 为什么 我知道我应该使用单引