linux - 在 Bash 中使用 awk 命令

标签 linux bash ubuntu awk gawk

我正在尝试使用 bash 脚本循环 awk 命令,但我很难在 awk 命令的单引号内包含一个变量。我在想我应该完全用 awk 来做这件事,但我现在对 bash 感觉更舒服。

#!/bin/bash

index="1"

while [ $index -le 13 ]
do

    awk "'"/^$index/ {print}"'" text.txt

done

最佳答案

使用标准方法 -- awk-v 选项来设置/传递变量:

awk -v idx="$index" '$0 ~ "^"idx' text.txt

在这里,我将变量 idx 设置为具有 shell 变量 $index 的值。在 awk 中,我只是将 idx 用作 awk 变量。

$0 ~ "^"idx 如果记录以 (^) 开头,无论变量 idx 包含什么,都匹配;如果是,打印记录。

关于linux - 在 Bash 中使用 awk 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44689972/

相关文章:

android - 通过 usb 电缆使用 android 智能手机控制 beaglebone black (linux)

linux - 如何从另一台机器监视一堆 Ubuntu 机器的 CPU 使用情况?

bash - 如何在命令替换中使用检测失败

bash - Node.js 生成和 `*` 用于选择多个文件

python - SSL:来自 Ubuntu 16.0.4 中的 Python pip 的 CERTIFICATE_VERIFY_FAILED 错误

linux - 如何在 linux/bash/unix 中查找日期时间之间经过的 UTC 24 小时?

linux - Perl 输出显示在终端的左侧?

linux - 从 Linux 终端的标准输出中删除 "bad address"错误

node.js - Node js npm 安装 github 包失败

python - 从同一网络的另一台机器访问 Django devserver