awk如何更改参数?

简介: awk如何更改参数?【10月更文挑战第17天】

awk如何更改参数?

在awk中,更改参数的方法有多种,以下是一些常见的方法:

  1. 使用-v选项

    • 通过-v选项可以自定义变量传递给awk使用。这种方式允许在任何输入被读入前定义参数,是最常用的方法之一[^2^][^3^]。
    • 示例:awk -v var='新值' 'BEGIN{print var}'
  2. 使用环境变量ENVIRON[]

    • 在调用awk之前,先设置好变量,然后在awk中通过环境变量ENVIRON来获取[^3^]。
    • 示例:X=MyVar; awk 'BEGIN{print ENVIRON["X"],ENVIRON["SHELL"]}'
  3. 直接传递参数

    • 参数写在输入文本之前,脚本之后。这种方式简单直接,但存在局限性,即在BEGIN块中无法使用这些参数,直到首行输入完成以后它们才可用[^4^]。
    • 示例:echo | awk 'BEGIN{print n}' n=1(此命令打印出空,并没有打印1,因为n在BEGIN块中不可用)
  4. 使用ARGV数组

    • ARGV数组存储了传递给awk的参数,其中ARGV[0]为awk程序本身,ARGV[1]及之后的索引对应于输入的参数[^4^]。
    • 示例:echo | awk 'BEGIN{print ARGV[0]}' var1
  5. 间接引用

    • 间接变量引用避免了在一个内嵌awk脚本中引用shell变量的混乱行为[^4^]。
    • 示例(计算文件中指定列的总和):
      #!/bin/bash
      ARGS=2
      if [ $# -ne "$ARGS" ]; then
          echo "Usage: `basename $0` filename column-number"
          exit 65
      fi
      filename=$1
      column_number=$2
      awk "{ total += \$${column_number} } END { print total }" "$filename"
      

总的来说,每种方法都有其适用的场景和优缺点,选择哪种方法取决于具体的应用需求和环境条件。

目录
相关文章
|
7月前
|
Perl
在 `awk` 脚本中初始化变量
在 `awk` 脚本中初始化变量
90 2
|
7月前
|
Perl
在Awk中,直接通过文件作为输入
在Awk中,直接通过文件作为输入
80 2
|
2月前
|
监控 Linux 数据处理
awk参数使用
【10月更文挑战第17天】awk参数使用
32 6
管道符 | shift + 回车上面内容,统计行数 ls -l /user/bin | wc -l,连续过滤cat test.txt | grep itcast | grep itheima
管道符 | shift + 回车上面内容,统计行数 ls -l /user/bin | wc -l,连续过滤cat test.txt | grep itcast | grep itheima
|
7月前
|
Linux Perl
【linux】awk用法:在每行新增额外字符串
【linux】awk用法:在每行新增额外字符串
269 0
|
安全 Linux Shell
让我带你一起了解一下 ls -l 命令输出的内容都有哪些意义,以及文件权限如何调整
让我带你一起了解一下 ls -l 命令输出的内容都有哪些意义,以及文件权限如何调整
109 0
如何使用Grep命令查找多个字符串
如何使用Grep命令查找多个字符串
578 0